26 複雜鍊錶的複製

2022-06-04 07:33:09 字數 600 閱讀 8098

輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點),返回結果為複製後複雜鍊錶的 head。

//建立 random 鏈結

28 cur =phead ;

29while(cur !=null)

34 cur = clone->next ;35}

3637

//拆分

38 cur =phead ;

39 randomlistnode* pclonehead = phead->next ;

40while(cur->next !=null)

45return

pclonehead ;46}

47 };

26 複雜鍊錶的複製

題目描述 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 注 以下解析來自程式設計師面試題精選100題 49 複雜鍊錶的複製 演算法 精簡。第一步,為原始鍊錶的每個節點n建立對應的節點n 並把n 插入到n的後面 第二步,設定複製出來的節點的si...

面試26 複雜鍊錶的複製

1.複製原始鍊錶的每乙個結點,並用m pnext鏈結 設定每乙個結點的m psibling指標。但該指標可能指向此結點的前面或後面,需從頭定位。時間複雜度為o n 2 2.雜湊表存著配對資訊,o n 3.將原始結點n建立對應的n 這一次,把n 連線到n的後面 void clonenodes comp...

面試題26 複雜鍊錶的複製

以下圖為5個結點的複雜鍊錶,實線表示m pnext指標的指向,虛線表示m psibling指標的指向 方法一 分兩步 1 遍歷一遍鍊錶,用m pnext指標將鍊錶連起來,o n 2 確定每個m psibling指標的指向,需重新遍歷新鍊錶確定其m psibling的指向,o n 時間代價為o n 2...