Example #1
0
    def reverseBetween(self, head, m, n):
        """

        :param head: ListNode
        :param m: int
        :param n: int
        :return: ListNode
        """
        dummyhead = Node()
        dummyhead.next = head
        cur = head
        index = 1
        pre = dummyhead
        while index <= n:
            if index >= m:
                """todo"""
                if index == m:
                    m_node = cur
                    m_pre = pre
                if index == n:
                    n_node = cur
                    n_next = cur.next
                next = cur.next
                cur.next = pre
                pre = cur
                cur = next
                index += 1
            else:
                pre = cur
                cur = cur.next
                index += 1
        m_pre.next = n_node
        m_node.next = n_next
        return dummyhead
    def reverseList(self, head):
        """

        :param head: ListNode
        :return: ListNode
        """
        dummyhead = Node()
        dummyhead.next = head
        cur = dummyhead.next
        pre = None
        while cur != None:
            next = cur.next
            cur.next = pre
            pre = cur
            cur = next
        dummyhead.next = pre
        return dummyhead