牛客網 複雜鍊錶的複製

2021-08-22 10:15:07 字數 1392 閱讀 4318

輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點),返回結果為複製後複雜鍊錶的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 賦值原始鍊錶,並將...