/*** 題目:請複製乙個複雜鍊錶。每個結點除了有乙個next指標指向下乙個結點外,還有乙個sibling指向鍊錶中的任意乙個結點。
* @author 大閒人柴毛毛
* @date 2023年3月16日
*/public
class
copylink
//複製每個結點,並插入原結點之後
nodep = first;
while(p!=
null)
//複製每個結點的sibling域
p = first;
while(p!=
null)
//拆分鍊錶
p = first;
nodeq = p.next;
nodefirst_copy = q;
//被複製鍊錶的頭結點
while(q!=
null)
return first_copy;
}/**
* 綜上所述:上述方法只需掃瞄鍊錶3次:
* 1.第一遍複製每個結點,並依次插入結點的後面;
* 2.第二遍複製每個結點的sibling域;
* 3.第三次拆分鍊錶。
* 因此,上述方式的時間複雜度為o(n)*/}
/*** 複雜鍊錶的乙個結點
*/class
node
面試題26 複雜鍊錶的複製
以下圖為5個結點的複雜鍊錶,實線表示m pnext指標的指向,虛線表示m psibling指標的指向 方法一 分兩步 1 遍歷一遍鍊錶,用m pnext指標將鍊錶連起來,o n 2 確定每個m psibling指標的指向,需重新遍歷新鍊錶確定其m psibling的指向,o n 時間代價為o n 2...
面試題26 複雜鍊錶的複製
1.給定乙個複雜的鍊錶的資料結構,複製這個鍊錶,在這個資料結構中,每個節點有兩個指標,乙個指標指向下乙個結點,另乙個指標指向鍊錶中的任意結點。資料結構 struct complexlistnode 分析 如下圖所示是乙個複雜鍊錶的示意圖,實現標誌指向下一節點的指標,虛線表示指向任意結點的m psib...
面試題 複雜鍊錶複製
lettcode面試題35.複雜鍊錶的複製 請實現 copyrandomlist 函式,複製乙個複雜鍊錶。在複雜鍊錶中,每個節點除了有乙個 next 指標指向下乙個節點,還有乙個 random 指標指向鍊錶中的任意節點或者 null。class node int val node next node...