zoukankan      html  css  js  c++  java
  • 链表_leetcode92

    #Definition for singly-linked list.
    class ListNode(object):
    def __init__(self, x):
    self.val = x
    self.next = None

    class Solution(object):
    def reverseBetween(self, head, m, n):
    """
    :type head: ListNode
    :type m: int
    :type n: int
    :rtype: ListNode
    """

    if not head or not head.next:
    return head
    if n < 1 or m >= n :
    return head

    cout = 1
    cur = head



    # 还是边界条件没考虑完全呀,比如翻转整个链表

    preStart = None
    nextEnd = None

    while cur:

    cur = cur.next

    cout += 1

    if cout == m-1:
    preStart = cur
    if cout == n:
    nextEnd = cur.next

    break


    start = preStart.next

    begin = start.next

    for i in range(m-n):

    nextBegin = begin.next
    begin.next = preStart.next
    preStart.next = begin
    begin = nextBegin

    start.next = nextEnd

    return head



    class Solution2(object):
    def reverseBetween(self, head, m, n):
    """
    :type head: ListNode
    :type m: int
    :type n: int
    :rtype: ListNode
    """

    count = 1
    root = ListNode(0)
    root.next = head

    pre = root

    # while pre.next:
    #
    # pre = pre.next
    # count += 1
    #
    # if count == m :
    # break

    while pre.next and count < m :
    pre = pre.next
    count += 1

    if not pre:
    return head


    mNode = pre.next
    cur = mNode.next

    while cur and count < n:

    next = cur.next
    cur.next = pre.next
    pre.next = cur
    mNode.next = next

    cur = next
    count += 1



    return root.next








  • 相关阅读:
    输入输出那些事
    NYOJ 20
    NYOJ 283
    HDU 1285
    HDU 2639(第K大背包)
    HDU 4288
    对Visual Studio C++ hash_map严谨一点的测试转载
    vc6,vc.net,vc7,vc8,vc9,c,c++,c#的区别与联系
    我在南大的七年刘末鹏
    慎用Visual Studio C++默认的hash_map转载
  • 原文地址:https://www.cnblogs.com/lux-ace/p/10557188.html
Copyright © 2011-2022 走看看