複雜鍊錶的複製 結點包含隨機指標)

2021-07-05 03:24:34 字數 514 閱讀 4174

輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點)。

思路:1、在原鍊錶上面複製,新節點連到相同的老結點後面;

2、複製隨機指標,老結點的隨機指標(老結點後面的結點的隨機指標指向,老結點隨機指標所指節點的下乙個結點)

3、將兩個鍊錶分離,返回頭指標;

**如下:

randomlistnode* clone(randomlistnode* phead)

currnode = phead;

while(currnode)

currnode = node->next;

}randomlistnode* phead_clone = phead->next;

randomlistnode* p;

currnode = phead;

while(currnode->next)

return phead_clone;

}

LintCode M 複製帶隨機指標的複雜鍊錶

複製帶隨機指標的鍊錶 描述 筆記 資料 評測 給出乙個鍊錶,每個節點包含乙個額外增加的隨機指標可以指向鍊錶中的任何節點或空的節點。返回乙個深拷貝的鍊錶。您在真實的面試中是否遇到過這個題?yes 樣例 挑戰 可否使用o 1 的空間 思路 一開始我的思路演算法比較複雜,然後在 劍指offer 找到原題,...

複製帶隨機指標的鍊錶

給出乙個鍊錶,每個節點包含乙個額外增加的隨機指標可以指向鍊錶中的任何節點或空的節點。返回乙個深拷貝的鍊錶。public randomlistnode copyrandomlist randomlistnode head hashmapmap new hashmap randomlistnode du...

複製帶隨機鍊錶的指標

題目要求 給定乙個鍊錶,每個節點包含乙個額外增加的隨機指標,該指標可以指向鍊錶中的任何節點或空節點。要求返回這個鍊錶的深拷貝。這道題我知道的有兩種解法 一種是遍歷鍊錶,找到每乙個節點的隨機指標,但是這樣做時間複雜度是o n 2 另外一種是拷貝節點的方法,下面我用一幅圖具體講一下節點的拷貝思路。下面配...