天天看點

83. 删除排序連結清單中的重複元素 -力扣(leetCode)JS連結清單題

⚡️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;
};
           

算法效率如圖:

83. 删除排序連結清單中的重複元素 -力扣(leetCode)JS連結清單題

覺得該篇文章有用的請不要忘記忘記點選右下角的大拇指~

歡迎大家關注我的公衆号:Smooth前端成長記錄

公衆号同步更新CSDN部落格内容,想友善閱讀部落格的C友可以來關注我的公衆号以便獲得更優良的閱讀體驗~

83. 删除排序連結清單中的重複元素 -力扣(leetCode)JS連結清單題

繼續閱讀