Leetcode 92反轉連結串列
阿新 • • 發佈:2018-12-17
題目
反轉從位置 m 到 n 的連結串列。請使用一趟掃描完成反轉。
說明:
1 ≤ m ≤ n ≤ 連結串列長度。
示例:
輸入: 1->2->3->4->5->NULL, m = 2, n = 4 輸出: 1->4->3->2->5->NULL
思路
進行一遍遍歷,把第m到n個元素進行翻轉,即依次插入到第m個節點的頭部。
class Solution(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 and count < m: pre = pre.next count += 1 if count < m: return head mNode = pre.next curr = mNode.next while curr and count < n: next = curr.next curr.next = pre.next pre.next = curr mNode.next = next curr = next count += 1 return root.next