/*
public class randomlistnode }*/
public
class
solution
randomlistnode currentnode = phead;
//1、遍歷鍊錶,複製每個結點,如複製結點a得到a1,將結點a1插到結點a後面;
while
(currentnode != null)
currentnode = phead;
//2、重新遍歷鍊錶,複製老結點的隨機指標給新結點,如a1.random = a.random.next;
while
(currentnode != null)
currentnode = phead;
randomlistnode clonehead = phead.next;
//3、拆分鍊錶,將鍊錶拆分為原鍊錶和複製後的鍊錶;
while
(currentnode != null)
return clonehead;
}}
劍指Offer刷題 鍊錶
劍指 offer 18.刪除鍊錶的節點 難度簡單 給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。注意 此題對比原題有改動 示例 1 輸入 head 4,5,1,9 val 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的...
劍指Offer刷題 複雜鍊錶的複製(35)
請實現 copyrandomlist 函式,複製乙個複雜鍊錶。在複雜鍊錶中,每個節點除了有乙個 next 指標指向下乙個節點,還有乙個 random 指標指向鍊錶中的任意節點或者 null。雜湊node和index,比較愚蠢。主要思路是兩次遍歷鍊錶,用乙個map儲存每乙個結點指標對應的index。第...
劍指offer刷題日記 鍊錶
鍊錶03 從尾到頭列印鍊錶 python 採用insert方法 class solution def printlist self,listnode if not listnode return result while listnode result.insert 0 listnode.val l...