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

2021-10-04 22:16:07 字數 834 閱讀 4777

輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點),返回結果為複製後複雜鍊錶的head。(注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空)

思路:開始沒大看懂題啥意思,看了給定的結構體才明白。

首先將各個節點進行複製a——>.a*,並將複製的節點a*插在a、b之間。

得到鍊錶為:a、a*、b、b*、c、c*......

修改next指標和random指標,a*的next指標指向next的next指標;

拆分,修改next指標

刷題 複雜鍊錶的複製

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

刷題 複雜鍊錶的複製

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

刷題之路 複雜鍊錶的複製

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