leetcode反轉鍊錶
利用雙指標
class
solution
return prev;
}}
利用遞迴
class
solution
//這裡的cur就是最後乙個節點
listnode cur =
reverselist
(head.next)
;//這裡請配合動畫演示理解
//如果鍊錶是 1->2->3->4->5,那麼此時的cur就是5
//而head是4,head的下乙個是5,下下乙個是空
//所以head.next.next 就是5->4
head.next.next = head;
//防止鍊錶迴圈,需要將head.next設定為空
head.next = null;
//每層遞迴函式都返回cur,也就是最後乙個節點
return cur;}}
206-fan-zhuan-lian-biao-by-user74/
LeetCode 反轉鍊錶
反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null高階 你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?思路 雙指標,先用乙個指標算出鍊錶結點個數n,每次快指標從頭往先前移動n 步,慢指標往前移動1步進行交換即可。definition for sin...
LeetCode 反轉鍊錶
反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 思路分析 直接一趟掃瞄即可。方法二 遞迴 definition for singly linked list.struct listnode class solution listnode reversea...
反轉鍊錶 LeetCode
遞迴版本稍微複雜一些,其關鍵在於反向工作。假設列表的其餘部分已經被反轉,現在我該如何反轉它前面的部分?假設列表為 n1 nk 1 nk nk 1 nm 若從節點 nk 1 到 nm 已經被反轉,而我們正處於 nk n1 nk 1 nk nk 1 nm 我們希望 nk 1 的下乙個節點指向 nk 所以...