給定乙個鍊錶,每個結點包含乙個額外增加的隨機指標,該指標可以指向鍊錶中任何結點或者空結點,要求返回這個鍊錶的深拷貝。
思路分析:
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...