劍指offer 複雜鍊錶的複製

2021-10-03 17:30:17 字數 1213 閱讀 9425

借用乙個map儲存(原節點,拷貝的節點)

class

solution

cur = head;

while

(cur)

return m[head];}

};

原地進行修改

class

solution

cur = head;

while

(cur)

cur = cur-

>next-

>next;

}//2.分離出鍊錶 分離奇偶鍊錶 leetcode 328和86

node* dummy1 =

newnode(-

1); node* dummy2 =

newnode(-

1); node* cur1 = dummy1;

node* cur2 = dummy2;

cur = head;

int count =1;

while

(cur)

else

cur = cur-

>next;

count++;}

cur1-

>next =

nullptr

;return dummy2-

>next;}}

;

leetcode 143 重排鍊錶–>合併鍊錶

class

solution

//2.後邊部分反轉

listnode* needreverser = slow-

>next;

slow-

>next =

nullptr

; needreverser =

reverse

(needreverser)

;//3.插入前邊部分-->合併鍊錶

listnode* cur = head;

listnode *cursecond = needreverser;

while

(cur && needreverser)

} listnode*

reverse

(listnode* head)

return pre;}}

;

劍指offer複雜鍊錶複製

題目描述 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 我的 思路比較笨,就是首先構造乙個正常的不大random指標的鍊錶,然後再去遍歷...

劍指offer 複雜鍊錶複製

輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 解題思路 1 複製每個節點,如 複製節點a得到a1,將a1插入節點a後面 2 遍歷鍊錶,a...

劍指offer 複雜鍊錶複製

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