劍指 Offer 35 複雜鍊錶的複製

2022-07-03 03:21:25 字數 663 閱讀 9449

主要是對random進行賦值。

1:可以使用map將舊節點和新節點對應起來,然後進行賦值

2:首先對map進行賦值,其次對next和random進行賦值

注意點:第二次迴圈的時候,將cur賦值為head

/*

// definition for a node.

class node

};*/

/** 思想是,使用雜湊表將舊的節點對映到新的節點上,可以使用map

* 如果頭結點為空,則直接返回。

* 不為空,先遍歷舊的鍊錶,做一一對映

* 再遍歷鍊錶,對random進行賦值

*/class solution

node * cur = head;

mapmp;

//做一一對映

while(cur !=null)

//對cur要重新賦值,這個地方在第一次提交的時候忘記了

cur = head;

//對next 和 random進行賦值

while(cur !=null)

return mp[head];}};

劍指Offer 35 複雜鍊錶的複製

請實現啊函式complexlistnode clone complexlistnode phead 複製乙個 複雜鍊錶。在複雜鍊錶中除了有乙個m pnext指標指向下乙個節點,還有乙個m psaibling 指標指向鍊錶中的任意節點或者nullptr。節點定義如下 class complexlist...

(劍指offer)35 複雜鍊錶的複製

輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 思路 1.先複製鍊錶節點的值放在原來的節點後面,組成乙個新的鍊錶 2.處理複雜指標 安排複...

劍指offer35 複雜鍊錶的複製

輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 剛開始看題時還有點摸不著頭腦,感覺這道題沒有任何存在的意義。後來看了大家的討論才明白。思想...