一刷時採用的是《劍指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 分析 要做到在原煉表和新鍊錶之間建立關係...