Leetcode 92 js 反轉鍊錶

2021-10-14 20:42:49 字數 1161 閱讀 4352

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。

1、遞迴

遞迴三要素:

以下面例子為例

reverselist(head.next)可以得到下圖,這是我們只需讓head與head.next指標交換一下即可。

所以我們得到等價條件:

reverselist(head)等價於reverselist(head.next)+ 改變一下1,2兩個節點的指向

寫出遞迴式。

2、非遞迴

以鍊錶的頭部節點為基準節點

將基準節點的下乙個節點挪到頭部作為頭節點

當基準節點的nextnull,則其已經成為最後乙個節點,鍊錶已經反轉完成

**1

//用遞迴的方法反轉鍊錶

varreverselist

=function

(head)

// 遞迴反轉子鍊錶

var newlist =

reverselist2

(head.next)

;// 改變 1,2節點的指向。

// 通過 head.next獲取節點2

let t1 = head.next;

// 讓 2 的 next 指向 2

t1.next = head;

// 1 的 next 指向 null.

head.next =

null

;// 把調整之後的鍊錶返回。

return newlist;

}

**2
var

reverselist

=function

(head)

//返回反轉鍊錶

return headnode;

}

?資料結構專欄:劍指 offer 題解 + js **

?github筆記 :ruoruochen github

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