美文网首页Leetcode练习
Leetcode系列:92. Reverse Linked Li

Leetcode系列:92. Reverse Linked Li

作者: chenxyy | 来源:发表于2019-01-09 21:26 被阅读0次

刷题难度:Medium

原题连接:

https://leetcode.com/problems/reverse-linked-list-ii/

Reverse a linked list from position m to n. Do it in one-pass.

Note: 1 ≤ m ≤ n ≤ length of list.

Example:

Input: 1->2->3->4->5->NULL, m = 2, n = 4
Output: 1->4->3->2->5->NULL

答案:
class Solution:
    def reverseBetween(self, head, m, n):
        """
        :type head: ListNode
        :type m: int
        :type n: int
        :rtype: ListNode
        """
        if not head or m == n:
            return head
        p = dummy = ListNode(None)
        dummy.next = head
        for i in range(m-1):
            p = p.next
        tail = p.next
        for i in range(n-m):
            tmp = p.next
            p.next = tail.next
            tail.next = tail.next.next
            p.next.next = tmp
        return dummy.next
参考:
思路

相关文章

网友评论

    本文标题:Leetcode系列:92. Reverse Linked Li

    本文链接:https://www.haomeiwen.com/subject/yjrnrqtx.html