借用乙個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...