138 複製帶隨機指標的鍊錶

2021-10-16 12:14:49 字數 864 閱讀 6822

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

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

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

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

random_index:隨機指標指向的節點索引(範圍從 0 到 n-1);如果不指向任何節點,則為  null 。

示例1:

輸入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]

輸出:[[7,null],[13,0],[11,4],[10,2],[1,0]]

思路:雜湊表。key是舊的節點,value是新的節點,每次操作value都要靠舊節點

c++實現:

/*

// definition for a node.

class node

};*/

class solution

p=head;

while(p)

p=head;

while(p)

return mp[head];}};

138 複製帶隨機指標的鍊錶

給定乙個鍊錶,每個節點包含乙個額外增加的隨機指標,該指標可以指向鍊錶中的任何節點或空節點。要求返回這個鍊錶的深度拷貝。definition for singly linked list with a random pointer.struct randomlistnode class solutio...

138 複製帶隨機指標的鍊錶

138.複製帶隨機指標的鍊錶 回溯演算法的第一想法是將鍊錶想象成一張圖。鍊錶中每個節點都有2個指標 圖中的邊 因為隨機指標給圖結構新增了隨機性,所以我們可能會訪問相同的節點多次,這樣就形成了環 上圖中,我們可以看到隨機指標指向了前乙個節點,因此形成了環。我們需要考慮這種環的實現。此方法中,我們只需要...

138 複製帶隨機指標的鍊錶

package leetcode public class demo 138 node otemp head 在每個節點之後複製乙個相同的節點 while otemp null 每個節點後插入乙個相同的節點 otemp.next t otemp otemp.next.next 複製隨機指標 otem...