劍指25 複雜鍊錶的複製

2021-10-21 16:55:00 字數 742 閱讀 2232

劍指25 - 複雜鍊錶的複製

輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標random指向乙個隨機節點),

請對此鍊錶進行深拷貝,並返回拷貝後的頭結點。(注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空)

/*

public class randomlistnode }*/

public class solution

// 2.處理轉殖節點的random指向,a1.random = a.random.next;

randomlistnode a0 = phead;

while( a0 != null)

// 3.建立轉殖節點頭,分離轉殖節點

randomlistnode start = phead;

randomlistnode ret = start.next;

while(start != null)

return ret;}}

小總結:三個while迴圈

1.先在原煉表上建立新鍊錶

2.再維護新的鍊錶的random指標指向

3.分離原煉表和新鍊錶

4.注意考慮末端節點的情況

25 劍指offer 複雜鍊錶的複製

分解讓複雜問題簡單 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 struct randomlistnode class solutio...

劍指offer 25 複雜鍊錶的複製

輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 include include include using namespace std s...

劍指offer 25 複雜鍊錶的複製

輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 本題的最簡答的思路就是先實現結點與next指標的複製,然後利用遍歷整個鍊錶尋找每個結點的r...