複雜連結串列的復刻
複雜連結串列的復刻
請實現一個函式可以複製一個複雜連結串列。
在複雜連結串列中,每個結點除了有一個指標指向下一個結點外,還有一個額外的指標指向連結串列中的任意結點或者null。
注意:
函式結束後原連結串列要與輸入時保持一致。
map
時間複雜度O(n)
class Solution {
public ListNode copyRandomList(ListNode head) {
if(head == null){
return null;
}
Map<ListNode,ListNode> copy = new HashMap<>();
ListNode node = head;
while(node != null){
ListNode CloneNode = new ListNode(node.val);
copy.put(node,CloneNode);
node = node.next;
}
node = head;
ListNode CloneHead = copy.get(node);
ListNode CloneNode = CloneHead;
while(node != null){
CloneNode.next = copy.get(node.next);
if(node.random != null){
CloneNode.random = copy.get(node.random);
}
CloneNode = CloneNode.next;
node = node.next;
}
return CloneHead;
}
}
相關文章
- 複雜連結串列的複製
- JZ-025-複雜連結串列的複製
- 面試題35:複雜連結串列的複製面試題
- 劍指 Offer 35. 複雜連結串列的複製
- Leetcode 234. 迴文連結串列 快慢指標+連結串列逆序實現O(n)時間複雜度且O(1)空間複雜度LeetCode指標時間複雜度
- 隨機連結串列的複製隨機
- [連結串列]leetcode138-複製帶隨即指標的連結串列LeetCode指標
- 【連結串列問題】打卡8:複製含有隨機指標節點的連結串列隨機指標
- 資料結構實驗之連結串列七:單連結串列中重複元素的刪除資料結構
- LRU快取-實現雜湊連結串列結合快取
- 連結串列-迴圈連結串列
- 連結串列-雙向連結串列
- 連結串列 - 單向連結串列
- JZ-056-刪除連結串列中重複的結點
- LeetCode 複製帶隨機指標的連結串列LeetCode隨機指標
- 連結串列4: 迴圈連結串列
- 連結串列-單連結串列實現
- 連結串列-雙向通用連結串列
- 連結串列-雙向非通用連結串列
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- 連結串列入門與插入連結串列
- Leetcode_86_分割連結串列_連結串列LeetCode
- 反轉連結串列、合併連結串列、樹的子結構
- 從未排序的連結串列中刪除重複項排序
- 連結串列的ADT
- L2-002 連結串列去重(複習)
- 資料結構-單連結串列、雙連結串列資料結構
- 連結串列
- Kubernetes 複雜嗎?可以不復雜
- LeetCode-Python-86. 分隔連結串列(連結串列)LeetCodePython
- Android技能樹 — 陣列,連結串列,雜湊表基礎小結Android陣列
- 一語中的:區塊鏈本質是雜湊連結串列區塊鏈
- 重學資料結構和演算法(一)之複雜度、陣列、連結串列、棧、佇列、圖資料結構演算法複雜度陣列佇列
- [連結串列】2.輸入一個連結串列,反轉連結串列後,輸出新連結串列的表頭。[多益,位元組考過]
- JZ76 刪除連結串列中重複的節點
- LeetCode-138-複製帶隨機指標的連結串列LeetCode隨機指標
- 牛客(刪除連結串列中重複節點)
- 連結串列專題——面試中常見的連結串列問題面試