LeetCode 138 複製帶隨機指標的鍊錶

2021-10-10 20:52:22 字數 691 閱讀 6568

思路:map || 思維

思路一、map:對於原鍊錶head以及複製鍊錶hd,可以用map[head]=hd進行一一對應,這樣在處理隨機random指標時,直接用map對應到相應複製鍊錶即可。

思路二、思維:對於複製鍊錶來說隨機指標由於找不到對於位置關係不好處理,因此可以將複製鍊錶的節點插入到原鍊錶對應節點後面,例如p1->pp1->p2->pp2->p3->>pp3,這樣就能找到原鍊錶與複製鍊錶的對應關係了。

code map:

class

solution

im[null]=

null

; p=head;

hd=im[p]

;while

(p!=

null

)return hd;}}

;

code 思維:

class

solution

p=head;

while

(p!=

null

) hd=pi=head-

>next;

head-

>next=p=pi-

>next;

while

(p!=

null

)return hd;}}

;

LeetCode 138 複製帶隨機指標的鍊錶

1.題目 2.解答 第一次遍歷鍊錶的時候,複製舊鍊錶的節點值建立乙個新的鍊錶,同時定義乙個 unordered map 作為雜湊表,雜湊表的鍵為舊鍊錶的節點指標,值為新鍊錶的節點指標。然後,第二次遍歷鍊錶,訪問舊鍊錶節點的隨機指標,然後以此為鍵從 map 中取出對應的新鍊錶節點指標,這也就是當前新鍊...

Leetcode 138 複製帶隨機指標的鍊錶

題目 給定乙個鍊錶,每個節點包含乙個額外增加的隨機指標,該指標可以指向鍊錶中的任何節點或空節點。要求返回這個鍊錶的深拷貝。示例 輸入 got eof at end of input 1 next at position 9 ref 2 val 2 rand ref 2 val 1 my defini...

LeetCode 138 複製帶隨機指標的鍊錶

給定乙個鍊錶,每個節點包含乙個額外增加的隨機指標,該指標可以指向鍊錶中的任何節點或空節點。要求返回這個鍊錶的深拷貝。示例 解釋 節點 1 的值是 1,它的下乙個指標和隨機指標都指向節點 2 節點 2 的值是 2,它的下乙個指標指向 null,隨機指標指向它自己。你必須返回給定頭的拷貝作為對轉殖列表的...