複製帶隨機指標的連結串列
給出一個連結串列,每個節點包含一個額外增加的隨機指標可以指向連結串列中的任何節點或空的節點。
返回一個深拷貝的連結串列。
解法一(參考):
建立雜湊表,然後遍歷連結串列,深複製的同時將複製的舊節點作為key,新節點作為value存進雜湊表,
第二次遍歷 以原連結串列的一個節點的隨機指標值作為索引,查詢對應的新連結串列的對應節點的隨機指標值解法二
參考
//雜湊表
class Solution {
public:
/**
* @param head: The head of linked list with a random pointer.
* @return: A new head of a deep copy of the list.
*/
RandomListNode *copyRandomList(RandomListNode *head) {
// write your code here
map<RandomListNode*,RandomListNode*> hash;
RandomListNode *curr = head;
RandomListNode *newHead = new RandomListNode(curr->label);
RandomListNode * newCurr = newHead;
hash[curr] = newHead;
while(curr->next) {
curr = curr -> next;
RandomListNode *newNode = new RandomListNode(curr->label);
hash[curr] = newNode;
newCurr->next = newNode;
newCurr = newCurr->next;
}
newCurr = newHead;
curr = head;
while(newCurr) {
newCurr->random = hash[curr->random];
newCurr = newCurr->next ;
curr = curr->next;
}
return newHead;
}
};
相關文章
- LeetCode 複製帶隨機指標的連結串列LeetCode隨機指標
- LeetCode-138-複製帶隨機指標的連結串列LeetCode隨機指標
- 「複製帶隨機指標的連結串列」的一個很巧妙解法隨機指標
- LeetCode 138:複製帶隨機指標的連結串列 Copy List with Random PointerLeetCode隨機指標random
- [連結串列]leetcode138-複製帶隨即指標的連結串列LeetCode指標
- 隨機連結串列的複製隨機
- 【連結串列問題】打卡8:複製含有隨機指標節點的連結串列隨機指標
- (轉發)連結串列新增函式中為什麼要用指向連結串列指標的指標(引用傳參)函式指標
- 【LeetCode】Swap Nodes in Pairs 連結串列指標的應用LeetCodeAI指標
- 面試題35:複雜連結串列的複製面試題
- Linkedin 面試題 | 複製隨機指標面試題隨機指標
- 單連結串列複製你已經會了,如果我們再加個指標...指標
- 指標和連結串列指標
- 【程式碼隨想錄】二、連結串列:2、設計連結串列
- 【程式碼隨想錄】二、連結串列:1、移除連結串列元素
- JavaScript 跟隨滑鼠指標的粒子效果JavaScript指標
- 連結串列面試題(九)---判斷一個連結串列是否帶環面試題
- 複雜連結串列的賦值賦值
- golang二級指標操作連結串列Golang指標
- 帶頭結點的連結串列操作題
- 連結串列面試題(十一)---求帶環單連結串列 環的入口點面試題
- 連結串列面試題(十)---求帶環單連結串列的環的長度面試題
- Java實現連結串列帶註釋Java
- PHPer也刷《劍指Offer》之連結串列PHP
- 劍指offer面試16 反轉連結串列面試
- 連結串列-雙向連結串列
- 連結串列-迴圈連結串列
- 連結串列面試題(十三)---求兩個都不帶環的連結串列相交的結點面試題
- 程式碼隨想錄第3天 | 連結串列 203.移除連結串列元素,707.設計連結串列,206.反轉連結串列
- [Golang]力扣LeetBook—初級演算法—連結串列—迴文連結串列(快慢指標)Golang力扣演算法指標
- 連結串列面試題(二)---連結串列逆序(連結串列反轉)面試題
- 連結串列面試題(十二)---判斷兩個都不帶環的連結串列是否相交面試題
- js實現複製連結JS
- 連結串列4: 迴圈連結串列
- 連結串列-單連結串列實現
- Leetcode 234. 迴文連結串列 快慢指標+連結串列逆序實現O(n)時間複雜度且O(1)空間複雜度LeetCode指標時間複雜度
- 每日演算法隨筆:反轉連結串列演算法
- 每日演算法隨筆:環形連結串列演算法