劍指Offer 刷題 複雜鍊錶的複製

2021-10-05 16:19:41 字數 564 閱讀 9788

/*

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