leetcode 92 反轉鍊錶 II

2021-10-24 22:07:20 字數 1326 閱讀 1659

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。

說明: 1 ≤ m ≤ n ≤ 鍊錶長度。

輸入: 1->2->3->4->5->null, m = 2, n = 4

輸出: 1->4->3->2->5->null

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class

solution

:def

reversebetween

(self, head: listnode, m:

int, n:

int)

-> listnode:

ifnot head:

return

none

# cur 指向第乙個要轉的位置,pre指向cur之前

cur, prev = head,

none

while m >1:

prev = cur

cur = cur.

next

m, n = m -

1, n -

1'''

tail 一直指向3,因為3就是最後乙個

prev 一直指向

1->2—>->6->7 ==> 1->2—>->6->7

| | | | | | |

con cur third con pre tail cur

pre

'''tail, con = cur, prev

while n:

third = cur.

next

cur.

next

= prev

prev = cur

cur = third

n -=

1# con == none 即prev == none,即從第1個開始置換,那麼head = prev

if con:

con.

next

= prev

else

: head = prev

tail.

next

= cur

return head

leetcode 92反轉鍊錶

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。說明 1 m n 鍊錶長度。示例 輸入 1 2 3 4 5 null,m 2,n 4 輸出 1 4 3 2 5 null definition for singly linked list.public class listnode class...

LeetCode 92 反轉鍊錶 II

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。說明 1 m n 鍊錶長度。示例 輸入 1 2 3 4 5 null,m 2,n 4 輸出 1 4 3 2 5 null 5ms definition for singly linked list.public class listnode c...

leetcode92 反轉鍊錶 II

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。說明 1 m n 鍊錶長度。示例 輸入 1 2 3 4 5 null,m 2,n 4輸出 1 4 3 2 5 null思路 先往後遍歷找到需要反轉的節點作為起點 count m 然後按照劍指offer 反轉鍊錶 的思路,設定curr,pre,p...