劍指 offer 24. 反轉鍊錶
定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。
輸入: 1->2->3->4->5->null
輸出: 5->4->3->2->1->null
首先是迭代的方法
**摘自(
}}遞迴的方法預設前面的鍊錶已經反轉完畢
摘自
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;
}}
劍指Offer 24 反轉鍊錶
定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。例 輸入 1 2 3 4 5 none 輸出 5 4 3 2 1 none 雙指標遍歷鍊錶,將當前節點的next設為前乙個節點。注意儲存當前節點的next來遍歷。時間複雜度 o n 空間複雜度 o 1 def reverse l...
劍指offer24 反轉鍊錶
定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點。樣例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null思路 初始化乙個新的頭節點new head,然後用尾插法把原始鍊錶中的結點插入新的頭節點。最後return new head next.acwing 3...
劍指offer24 反轉鍊錶
定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出轉換後的頭結點。首先,從題目中可得知為單鏈表結構,只有指向下乙個元素的指標。而要完成整個鍊錶的反轉則需要將所有next指標進行反轉。定義3個指標,分別指向當前遍歷的節點 它的前乙個節點以及後乙個節點。pnode ppre pre pnode phe...