劍指二刷35 複雜鍊錶的複製

2021-10-23 21:34:48 字數 732 閱讀 1454

一刷時採用的是《劍指offer》中,在原煉表中插入新複製的節點,從而在複製random節點時,不需要開闢額外的輔助空間。

複製節點,並將複製的節點插入原來的鍊錶中。

將新節點的random節點複製給新的節點。

時間複雜度:o(n)

空間複雜度:o(1)

/*

// definition for a node.

class node

};*/

class

solution

cur = head;

node* node = head-

>next;

//複製random

while

(cur !=

null

) cur = head;

node = head-

>next;

node* newhead = node;

//分離兩個鍊錶

while

(cur !=

null)}

return newhead;}}

;

劍指Offer刷題 複雜鍊錶的複製(35)

請實現 copyrandomlist 函式,複製乙個複雜鍊錶。在複雜鍊錶中,每個節點除了有乙個 next 指標指向下乙個節點,還有乙個 random 指標指向鍊錶中的任意節點或者 null。雜湊node和index,比較愚蠢。主要思路是兩次遍歷鍊錶,用乙個map儲存每乙個結點指標對應的index。第...

劍指 35,複雜鍊錶的複製(注意)

題目描述 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 思路 o n 細節太多了 1,根據普通節點指向先複製一遍,形成a a b b c...

劍指 Offer35鍊錶 複雜鍊錶的複製

題目 請實現 copyrandomlist 函式,複製乙個複雜鍊錶。在複雜鍊錶中,每個節點除了有乙個 next 指標指向下乙個節點,還有乙個 random 指標指向鍊錶中的任意節點或者 null。示例 輸出 7,null 13,0 11,4 10,2 1,0 分析 要做到在原煉表和新鍊錶之間建立關係...