leetcode 92 反轉鍊錶II

2021-10-02 13:52:03 字數 793 閱讀 5759

題目描述如下:

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

說明:

1 ≤ m ≤ n ≤ 鍊錶長度。

示例:

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

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

很明顯這個題目是206 反轉鍊錶的高階版

需要記錄第m-1個節點和第n+1個節點,因為這兩個節點分別是當前鍊錶逆置區域的頭節點和尾節點,總體分為三步

獲取逆置區域的頭節點,即第m -1 個節點

逆置m – n個節點

獲取第 n + 1個節點

鏈結逆置後區域的頭部和尾部

實現如下:

listnode*

reversebetween

(listnode* head,

int m,

int n)

listnode *list_tail = head;

listnode *new_head =

null

;while

(change && head)

list_tail -> next = head;

if(pre_head)

else

return result;

}

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