Leetcode 92 反轉鍊錶 II C

2021-10-07 06:13:35 字數 669 閱讀 1037

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

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

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

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

用乙個指標ahead指向m的前乙個節點,先找到第m個節點p,同時用after指向p->next,反轉操作便是p->next = after->next,after->next = p1,p1永遠指向這段區鍊錶的頭節點,之後更新p1,after。具體過程見**

listnode*

reversebetween

(listnode* head,

int m,

int n)

if(p==

null

|| p-

>next==

null

)return head;

after = p-

>next;

p1 = p;

while

(cnt != n)

if(p!=head) ahead-

>next = p1;

else head = p1;

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...