劍指 Offer 35 複雜鍊錶的複製

2021-10-20 12:26:44 字數 862 閱讀 4425

題目:帶有random指標的鍊錶節點(可指向任意乙個元素或null),完成該鍊錶的複製。

public node copyrandomlist(node head)

思路

/*

思路:處理random指標時,提前把old和new鍊錶的元素對應關係建立好(map)

空間:o(n) map所需額外的空間

*/public node copyrandomlist

(node head)

map.

put(null,null)

; cur = head;

node p = newhead;

while

(p != null)

return newhead;

}

/*

在舊節點後加上覆制節點,補全複製節點的random關係

*/public node copyrandomlist2

(node head)

//複製random關係

newhead = head.next;

cur = head;

p = newhead;

while

(true

)//拆開,但是不能修改原鍊錶(拆開時邊修改原鍊錶,邊修改下面鍊錶)

cur = head;

p = newhead;

while

(p.next != null)

cur.next = null;

return newhead;

}

劍指Offer 35 複雜鍊錶的複製

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

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

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

劍指offer35 複雜鍊錶的複製

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