206 反轉鍊錶

2022-01-12 05:54:34 字數 573 閱讀 3664

可以使用遞迴或者迭代方法,注意使用遞迴的時候,不要管下一層是怎麼做的,只要假設當前已經做完就可以了。

迭代需要注意的是,頭結點的next要置空

遞迴

class solution 

//p為子節點的頭結點(子結點已經全部翻轉完)

listnode p = reverselist(head.next);

head.next.next = head;

head.next = null;

return p;

}}

迭代

class solution 

listnode cur = head;

listnode pre = null;

listnode newhead = null;

while(cur != null)

cur.next = pre;//翻轉連線

pre = cur;//pre指標前進

cur = nextp;//cur指標前進

}return newhead;

}}

206 反轉鍊錶

任務描述 思路 遇到問題 修改 迴圈前判斷傳入引數是否為空 迭代時沒有考慮l3.next none的情況 實現 definition for singly linked list.class listnode def init self,x self.val x self.next none cla...

206 反轉鍊錶

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 迭代就不說了,儲存當前節點的前繼節點迴圈改變指標指向就行。我自己先寫了個遞迴的,但看了題解的遞迴,一比就比下去了。class solution def reverselist self,head listn...

206 反轉鍊錶

題目 反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 思路 首先,我們建立兩個新的空節點 prev 和 newhead 我們原來的第乙個節點的下乙個節點指向prev,然後再讓prev 指向第乙個節點,這樣就完成了第乙個節點的逆置,以此類推就可以翻轉這個鍊...