面試題35 複雜鍊錶的複製

2021-10-12 01:18:49 字數 693 閱讀 9527

題目:請實現 copyrandomlist 函式,複製乙個複雜鍊錶。在複雜鍊錶中,每個節點除了有乙個 next 指標指向下乙個節點,還有乙個 random 指標指向鍊錶中的任意節點或者 null。

方法一:暴力

先構建鍊錶,然後再乙個乙個的找 random 指標所指向的結點

時間效率太差了,完全沒有美感

方法二:空間換時間

用乙個大小為 n 的 hash 表儲存,用 o(n) 的空間把時間從 o(n^2) 降到 o(n)

方法三:同步複製

class

solution

node curr = head;

//拷貝鍊錶,並且把鍊錶連線起來

while

(curr != null)

//指定隨即指標

curr = head;

while

(curr != null)

//拆分鍊錶

curr = head;

node res = curr.next;

//用於返回的拷貝頭節點

while

(curr != null)

return res;

}}

面試題35 複雜鍊錶的複製

題目描述 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 方法一 三步 struct randomlistnode class solut...

面試題35 複雜鍊錶的複製

一 題目 請實現函式complexlistnode clone complexlistnode phead 複製乙個複雜鍊錶。在複雜鍊錶中,每個結點除了有乙個m pnext指標指向下乙個結點外,還有乙個m psibling 指向鍊錶中的任意結點或者nullptr。二 關鍵 1.在原始鍊錶上擴充新的鍊...

面試題35 複雜鍊錶的複製

請實現 copyrandomlist 函式,複製乙個複雜鍊錶。在複雜鍊錶中,每個節點除了有乙個 next 指標指向下乙個節點,還有乙個 random 指標指向鍊錶中的任意節點或者 null。示例 1 輸入 head 7,null 13,0 11,4 10,2 1,0 輸出 7,null 13,0 1...