劍指Offer25 複雜鍊錶的複製

2021-10-06 02:59:15 字數 726 閱讀 6852

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

遍歷該鍊錶,複製每乙個節點,插入到當前節點的後面.形成如下鍊錶. 1->1』->2->2』…

將每個拷貝節點的隨機指標域,指向原節點(即拷貝節點的上乙個節點)的隨即指標域指向(注意隨機指標域可能為空)的下乙個節點.即1的隨機指標域指向3,則1』的隨機指標域指向3的下乙個指標3』.

拆分鍊錶,返回1』->2』->3』…

/*

public class randomlistnode }*/

public

class

solution

//second round: assign random pointers for the copy nodes

runner=phead;

while

(runner!=null)

//third round: restore the original list, and extract the copy list.

runner=phead;

phead=runner.next;

while

(true

)else

}return phead;

}}

劍指offer 25 複雜鍊錶的複製

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

劍指offer 25 複雜鍊錶的複製

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

劍指offer 25 複雜鍊錶的複製

輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 1 複製每個節點,如 複製節點a得到a1,將a1插入節點a後面 2 遍歷鍊錶,a1 ran...