⚡️83. 删除排序連結清單中的重複元素⚡️
存在一個按升序排列的連結清單,給你這個連結清單的頭節點 head ,請你删除所有重複的元素,使每個元素 隻出現一次 。
傳回同樣按升序排列的結果連結清單。
示例 1:
輸入:head = [1,1,2]
輸出:[1,2]
示例 2:
輸入:head = [1,1,2,3,3]
輸出:[1,2,3]
提示:
連結清單中節點數目在範圍 [0, 300] 内
-100 <= Node.val <= 100
題目資料保證連結清單已經按升序排列
⚡️分析⚡️
題目要求已經規定了該連結清單為升序排列,是以不用很複雜的算法來找連結清單中各個位置是否有重複的元素,直接升序周遊即可,遇到目前元素和下個元素相同的情況,删除即可,不相同就将指針繼續往下指。
代碼如下:
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var deleteDuplicates = function(head) {
let p1=head;
while(p1 && p1.next){
if(p1.val === p1.next.val){
p1.next = p1.next.next;
}else{
p1 = p1.next;
}
}
return head;
};
算法效率如圖:
覺得該篇文章有用的請不要忘記忘記點選右下角的大拇指~
歡迎大家關注我的公衆号:Smooth前端成長記錄
公衆号同步更新CSDN部落格内容,想友善閱讀部落格的C友可以來關注我的公衆号以便獲得更優良的閱讀體驗~