複製帶隨機指標的鍊錶20201222

2021-10-12 16:33:26 字數 753 閱讀 6588

複製帶隨機指標的鍊錶

給定乙個鍊錶,每個節點包含乙個額外增加的隨機指標,該指標可以指向鍊錶中的任何節點或空節點。

要求返回這個鍊錶的 深拷貝

我們用乙個由 n 個節點組成的鍊錶來表示輸入/輸出中的鍊錶。每個節點用乙個 [val, random_index] 表示:

val:乙個表示 node.val 的整數。

random_index:隨機指標指向的節點索引(範圍從 0 到 n-

1);如果不指向任何節點,則為 null 。

節點拷貝,重在random指標。

這裡主要思路是,在每個原節點後面新建乙個val與原節點相等的新節點;然後新節點的next指標為對應原節點的next;最後一步斷鏈。

public node copyrandomlist

(node head)

// 賦值新確認節點的隨機指標

node = head;

while

(node != null && node.next != null)

// 斷開鍊錶,返回新的頭指標

node newhead =

newnode(0

);node = head;

node cur = newhead;

while

(node != null)

return newhead.next;

}

複製帶隨機指標的鍊錶

給出乙個鍊錶,每個節點包含乙個額外增加的隨機指標可以指向鍊錶中的任何節點或空的節點。返回乙個深拷貝的鍊錶。public randomlistnode copyrandomlist randomlistnode head hashmapmap new hashmap randomlistnode du...

複製帶隨機鍊錶的指標

題目要求 給定乙個鍊錶,每個節點包含乙個額外增加的隨機指標,該指標可以指向鍊錶中的任何節點或空節點。要求返回這個鍊錶的深拷貝。這道題我知道的有兩種解法 一種是遍歷鍊錶,找到每乙個節點的隨機指標,但是這樣做時間複雜度是o n 2 另外一種是拷貝節點的方法,下面我用一幅圖具體講一下節點的拷貝思路。下面配...

複製帶隨機指標的鍊錶

解題思路是先建立一條複製鍊錶,複製鍊錶的val和原始鍊錶的val相對應,建立過程中,使用雜湊表建立原始結點和複製結點的對映。原始結點為key,複製結點為value。那麼,在複製鍊錶中查詢當前結點的隨機指標時,當前對應原始結點的隨機指標所對映的值value就是這個複製結點的隨機指標。這個解題思路關鍵在...