刷題 複雜鍊錶的複製

2022-09-19 23:48:13 字數 824 閱讀 9650

一、題目

二、重點難點分析

1.怎麼確定random在新的節點的位置

2.為什麼要用map?答:map函式有鍵值關係,先確定好舊鍊錶的鍵值關係,在從新的煉表裡利用舊煉表裡的鍵key配對random(就是值)

3.new 乙個map出來,按著(node,node.val)傳入進到map裡(node是head,node.val是random)

4.要注意一點:假如random 和 next都為空,如果map裡面沒有,就會報錯

5.第二個while 是配對,從map裡找到舊鍊錶的key,然後尋找到random(值),配對完後會更新map,所以最後只要return乙個head即可。

三、**

1/**

2* // definition for a node.

3* function node(val, next, random) ;8*/

910/**

11* @param head

12* @return

13*/

14var copyrandomlist = function

(head)

23 map.set(null,null

);24 node =head;

2526

while

( node )

2732

return

map.get(head);

33 };

刷題 複雜鍊錶的複製

輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 第一反應 分兩步。第一步考慮next,第二步考慮random。利用雜湊表建立對映關係。co...

刷題之路 複雜鍊錶的複製

輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head 三步走 第一步,複製鍊錶節點a b c 變為 a a b b c c 目的為了第二步 第二步,重建random指標位置,此時,複製後的指標指向的位置應該就是原節...

刷題筆記(十二) 複雜鍊錶複製

輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 思路 開始沒大看懂題啥意思,看了給定的結構體才明白。首先將各個節點進行複製a a 並將複製...