輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點),返回結果為複製後複雜鍊錶的head。(注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空)
思路參考:《苦練演算法》-劍指offer- 二十
五、複雜鍊錶的複製 -python編寫
先複製原來鍊錶
複製相互之間的random關係
將兩個鍊錶拆分
# 返回 randomlistnode
def clone(self, phead):
# write code here
if not phead:
return phead
clonenode=phead
# 複製鍊錶
while clonenode:
node=randomlistnode(clonenode.label)
node.next=clonenode.next
clonenode.next=node
clonenode=node.next
clonenode=phead
# 複製相互之間的random指向
while clonenode:
if clonenode.random:
clonenode.next.random=clonenode.random.next
clonenode=clonenode.next.next
clonenode=phead
phead=phead.next
# 將兩個列表拆分
while clonenode.next:
node=clonenode.next
clonenode.next=node.next
clonenode=node
return phead
牛客網 複雜鍊錶的複製
題目描述 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判斷程式會直接返回空 思路 分為三個步驟 1 根據原始鍊錶中的節點建立新的節點,然後將新的節點連線在對...
牛客網18 複雜鍊錶的複製
輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 coding utf 8 class randomlistnode def init se...
牛客網刷題之複雜鍊錶
題目描述 現在有乙個這樣的鍊錶 鍊錶的每乙個節點都附加了乙個隨機指標,隨機指標可能指向鍊錶中的任意乙個節點或者指向空。請對這個鍊錶進行深拷貝。題目分析 public class solution 當前節點指向複雜鍊錶的頭結點 randomlistnode curnode head 賦值原始鍊錶,並將...