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

2021-10-03 04:22:44 字數 834 閱讀 4211

題目描述

輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點),返回結果為複製後複雜鍊錶的head。(注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空)

思路:o(n),(細節太多了)

1,根據普通節點指向先複製一遍,形成a>a>b>b>c>c…形狀的鍊錶;

2,遍歷原來的abc鍊錶的隨機指向節點(注意有哦共同指向最後的空節點的),複製的節點隨機指向就在該節點的下乙個節點!

3,拆分兩個鍊錶!

注意事項:

1.複製鍊錶時開乙個新節點時格式,以當前值構造

2,更改順序時候,迴圈終止為當前節點為空。他們是共用乙個最後的null節點。且隨機指向指標指向有可能是null,就不用改了(初始化時就設好了)

3,拆分鍊錶時,先分好兩個頭節點。然後注意拆分時判斷第三個節點為null

**:

class

solution

private

:void

clonelist

(randomlistnode* pnode)

return;}

void

changesequence

(randomlistnode* pnode)

return;}

randomlistnode*

reconnectlist

(randomlistnode* phead)

return clonehead;}}

;

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

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

劍指Offer 35 複雜鍊錶的複製

請實現啊函式complexlistnode clone complexlistnode phead 複製乙個 複雜鍊錶。在複雜鍊錶中除了有乙個m pnext指標指向下乙個節點,還有乙個m psaibling 指標指向鍊錶中的任意節點或者nullptr。節點定義如下 class complexlist...

(劍指offer)35 複雜鍊錶的複製

輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 思路 1.先複製鍊錶節點的值放在原來的節點後面,組成乙個新的鍊錶 2.處理複雜指標 安排複...