複雜鍊錶的複製(深拷貝)

2021-10-02 15:34:03 字數 685 閱讀 7728

給定乙個鍊錶,每個結點包含乙個額外增加的隨機指標,該指標可以指向鍊錶中任何結點或者空結點,要求返回這個鍊錶的深拷貝。

思路分析:

1.破壞需要複製的複雜鍊錶,將新老節點串成乙個單鏈表的形式

2.解決random的指向問題

(重要**:cur.next.random=cur.random.next)

3.完成上述結點處理已經完成,最後一步就是將鍊錶拆分開來

class

solution

//1.將新老結點串起來

node cur=head;

while

(cur!=null)

//2.解決random指標指向問題

cur=head;

while

(cur!=null)

else

cur=cur.next.next;

}//3.拆分鍊錶

cur=head;

node newhead=cur.next;

while

(cur.next != null)

return newhead;

}}

複雜鍊錶的深拷貝

題目描述 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標random指向乙個隨機節點 請對此鍊錶進行深拷貝,並返回拷貝後的頭結點。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 看完題目應該很混亂,甚至還有點看不懂。題目解析 看上面的,題...

鍊錶 複雜鍊錶的複製

問題描述 請實現函式complexlistnode clone complexlistnode phead 複製乙個複雜鍊錶。在複雜鍊錶中,每個結點除了有乙個next指標指向下乙個結點之外,還有乙個random指向鍊錶中的任意結點或者null。結點的定義如下 struct randomlistnod...

複雜鍊錶複製

複雜鍊錶複製的標頭檔案mlist.h ifndef mlist h define mlist h include include includetypedef int datatype typedef struct node node,pnode,plist pnode crealist datat...