刪除排序鍊錶中的重複元素 ii
給定乙個排序鍊錶,刪除所有含有重複數字的節點,只保留原始鍊錶中 沒有重複出現 的數字。
/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
if(head-
>val == head-
>next-
>val)
return
deldup
(head-
>next,1)
;else}}
listnode*
deleteduplicates
(listnode* head)
};
想寫三指標未遂。。經智哥提示可以遞迴,寫出了這種奇葩遞迴法
其實三指標迭代也應該練練
分隔鍊錶
給定乙個鍊錶和乙個特定值 x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。
你應當保留兩個分割槽中每個節點的初始相對位置。
/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
else
head = head-
>next;
} r-
>next =
null
;//為什麼不加這句會引起heap use after free
//應該是得到乙個有環的錯誤鍊錶
l->next = prehigh-
>next;
return prelow-
>next;}}
;
乍一看比較唬人,其實一次遍歷的方法還是比較好寫的。
注意啞節點的使用,比較方便
就是維護兩個鍊錶,乙個是左半邊,乙個是右半邊
有個小問題就是為什麼不加r結尾為null這一句會引起heap use after free
本以為會得到乙個錯誤的鍊錶
想了一天,覺得可能是生成的煉表裡有環。伺服器校驗結果的時候可能會遍歷鍊錶
這樣就死迴圈了,就會報錯。
刪除鍊錶中的重複元素(中等難度)(第82題)
題目 給定乙個排序鍊錶,刪除所有含有重複數字的節點,只保留原始鍊錶中 沒有重複出現 的數字。示例 1 輸入 1 2 3 3 4 4 5 輸出 1 2 5 示例 2 輸入 1 1 1 2 3 輸出 2 3 分析 因為最近一直在刷鍊錶型別的題目,所以拿到這個題目的時候我首先想到了用雙指標來做,即,快慢指...
82 刪除排序鍊錶中重複元素
題目 給定乙個排序鍊錶,刪除所有含有重複數字的節點,只保留原始鍊錶中 沒有重複出現 的數字。示例 1 輸入 1 2 3 3 4 4 5 輸出 1 2 5示例 2 輸入 1 1 1 2 3 輸出 2 3思路 採用三個指標。slow指標指向第乙個重複節點,fast指向最後乙個重複節點,temp指向第乙個...
鍊錶演算法 刪除重複節點
在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 public class listnode public listnode deleteduplication listnode phead l...