刷題之路 複雜鍊錶的複製

2021-07-15 03:53:44 字數 573 閱讀 4814

輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點),返回結果為複製後複雜鍊錶的head

三步走:

第一步,複製鍊錶節點a->b->c 變為  a->a'->b->b'->c->c'  ,目的為了第二步

第二步,重建random指標位置,此時,複製後的指標指向的位置應該就是原節點random指標指向節點的next,這樣就重建了複雜鍊錶

第三步,將複製出的節點分離並組合成為乙個新的鍊錶,這就是我們複製出的鍊錶

**如下:

/*struct randomlistnode

};*/

class solution

randomlistnode* copy(randomlistnode* phead)

return phead;

}randomlistnode* rbuild(randomlistnode* phead)

return phead;

}randomlistnode* divide(randomlistnode* phead)

return newhead;}};

刷題 複雜鍊錶的複製

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

刷題 複雜鍊錶的複製

一 題目 二 重點難點分析 1.怎麼確定random在新的節點的位置 2.為什麼要用map?答 map函式有鍵值關係,先確定好舊鍊錶的鍵值關係,在從新的煉表裡利用舊煉表裡的鍵key配對random 就是值 3.new 乙個map出來,按著 node,node.val 傳入進到map裡 node是he...

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

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