複雜連結串列的賦值
連結串列結構中,每個節點不僅有一條指向下一節點的next指標,同時含有一條rand指標,rand指標可能指向任何一個連結串列中的節點,請複製這種含有rand指標節點的連結串列。
方法1.建立一個沒有rand時與複雜連結串列完全相同的連結串列,然後遍歷原連結串列,給新連結串列rand複製。
方法2.
public class Solution {
public RandomListNode Clone(RandomListNode head) {
if (head == null) {
return null;
}
RandomListNode cur = head;
RandomListNode next = null;
// copy node and link to every node
while (cur != null) {
next = cur.next;
cur.next = new RandomListNode(cur.label);
cur.next.next = next;
cur = next;
}
cur = head;
RandomListNode curCopy = null;
// set copy node rand
while (cur != null) {
next = cur.next.next;
curCopy = cur.next;
curCopy.random = cur.random != null ? cur.random.next : null;
cur = next;
}
RandomListNode res = head.next;
cur = head;
// split
while (cur != null) {
next = cur.next.next;
curCopy = cur.next;
cur.next = next;
curCopy.next = next != null ? next.next : null;
cur = next;
}
return res;
}
}
相關文章
- 面試題35:複雜連結串列的複製面試題
- 糾結的連等賦值賦值
- Verilog連續賦值、過程賦值、過程連續賦值總結賦值
- 隨機連結串列的複製隨機
- Leetcode 234. 迴文連結串列 快慢指標+連結串列逆序實現O(n)時間複雜度且O(1)空間複雜度LeetCode指標時間複雜度
- Remove Duplicates from Sorted List 去除連結串列中重複值節點REM
- [連結串列]leetcode138-複製帶隨即指標的連結串列LeetCode指標
- (連結串列)連結串列的排序問題排序
- 【連結串列問題】打卡8:複製含有隨機指標節點的連結串列隨機指標
- LRU快取-實現雜湊連結串列結合快取
- 資料結構實驗之連結串列七:單連結串列中重複元素的刪除資料結構
- 連結串列-雙向連結串列
- 連結串列-迴圈連結串列
- 連結串列面試題(二)---連結串列逆序(連結串列反轉)面試題
- javascript中的連結串列結構—雙向連結串列JavaScript
- 連結串列4: 迴圈連結串列
- 連結串列-單連結串列實現
- 複製帶隨機指標的連結串列隨機指標
- JavaScript 連等賦值JavaScript賦值
- 連結串列入門與插入連結串列
- 連結串列以及golang介入式連結串列的實現Golang
- Linux核心連結串列-通用連結串列的實現Linux
- 複習下C 連結串列操作(雙向迴圈連結串列,查詢迴圈節點)
- 連結串列
- 反轉連結串列、合併連結串列、樹的子結構
- 從未排序的連結串列中刪除重複項排序
- 連結串列專題——面試中常見的連結串列問題面試
- 一語中的:區塊鏈本質是雜湊連結串列區塊鏈
- 重學資料結構和演算法(一)之複雜度、陣列、連結串列、棧、佇列、圖資料結構演算法複雜度陣列佇列
- 【C++基礎複習01】結構體和連結串列C++結構體
- Leetcode_86_分割連結串列_連結串列LeetCode
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- 演算法刪除單連結串列中重複的元素演算法
- JZ76 刪除連結串列中重複的節點
- L2-002 連結串列去重(複習)
- 資料結構實驗之連結串列三:連結串列的逆置資料結構
- 資料結構實驗之連結串列五:單連結串列的拆分資料結構
- 資料結構實驗之連結串列六:有序連結串列的建立資料結構