国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【刷算法】兩種類型的刪除有序鏈表中的重復節點

googollee / 1345人閱讀

摘要:題目描述刪除有序鏈表中的重復節點,返回頭節點刪除掉所有重復節點,例如,返回重復的節點中保留一個,例如,返回刪除掉所有重復節點細節這里面有幾個需要注意的細節新建一個空的頭節點,因為這里面牽扯到換新的鏈表頭的問題,所

題目描述

刪除有序鏈表中的重復節點,返回頭節點

刪除掉所有重復節點,例如1->1->2->2->3->4,返回3->4

重復的節點中保留一個,例如1->1->2->2->3->4,返回1->2->3->4

刪除掉所有重復節點
function ListNode(x){
    this.val = x;
    this.next = null;
}
function deleteDuplication(pHead){
    if(pHead === null || pHead.next === null) 
        return pHead;
    var H = new ListNode(null);
    H.next = pHead;

    var pre = H;
    var cur = pHead;

    while(cur !== null && cur.next !== null) {
        if(cur.next.val === cur.val){
            var curRepetitiveVal = cur.val;
            while(cur !== null && cur.val === curRepetitiveVal) {
                cur = cur.next;
            }
            pre.next = cur;
        }else{
            pre = cur;
            cur = cur.next;
        }
    }

    return H.next;
}

細節
這里面有幾個需要注意的細節:

新建一個空的頭節點,因為這里面牽扯到換新的鏈表頭的問題,所以為了方便新建一個新的節點作為鏈表的頭節點

每個重復節點中保留一個
function ListNode(x){
    this.val = x;
    this.next = null;
}
function deleteDuplication(pHead){
    if(pHead === null || pHead.next === null) 
        return pHead;
    var H = new ListNode(null);
    H.next = pHead;

    var pre = H;
    var cur = pHead;

    while(cur !== null && cur.next !== null) {
        if(cur.next.val === cur.val){
            pre = cur;
            var curRepetitiveVal = cur.val;
            while(cur !== null && cur.val === curRepetitiveVal) {
                cur = cur.next;
            }
            pre.next = cur;
        }else{
            pre = cur;
            cur = cur.next;
        }
    }    

    return H.next;
}

細節

這個和刪除掉所有重復節點的區別就是發現有相同的節點時,pre指針立馬指向重復的節點中的第一個節點

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95522.html

相關文章

  • LeetCode題83-簡單-刪除有序鏈表重復

    文章目錄 ?? 前言 ??? 作者簡介 ?? 一、題目描述 ?? 二、題目解析 ?? 三、代碼 ??? 1??. python ???? 2??. C# ?? ? 結語 ? ?? 前言 ?? 算法作為極其重要的一點,是大學生畢業找工作的核心競爭力,所以為了不落后與人,開始刷力扣算法題! ? 作者簡介 ? 大家好,我是布小禪,一個盡力讓無情的代碼變得生動有趣的IT小白,很高興能偶認識你,關注我...

    henry14 評論0 收藏0
  • 算法】LeetCode.237-刪除表中節點

    摘要:題目描述請編寫一個函數,使其可以刪除某個鏈表中給定的非末尾節點,你將只被給定要求被刪除的節點。鏈表中所有節點的值都是唯一的。給定的節點為非末尾節點并且一定是鏈表中的一個有效節點。 題目描述 請編寫一個函數,使其可以刪除某個鏈表中給定的(非末尾)節點,你將只被給定要求被刪除的節點。 現有一個鏈表 -- head = [4,5,1,9],它可以表示為: 4 -> 5 -> 1 -> 9 示...

    zone 評論0 收藏0
  • JavaScript 數據結構與算法之美 - 線性表(數組、棧、隊列、鏈表

    摘要:每個線性表上的數據最多只有前和后兩個方向。數組鏈表隊列棧等就是線性表結構。非線性表數據之間并不是簡單的前后關系。不包含任何元素的棧稱為空棧。移除棧頂的元素,同時返回被移除的元素。 showImg(https://segmentfault.com/img/bVbuvnj?w=900&h=250); 前言 基礎知識就像是一座大樓的地基,它決定了我們的技術高度。 我們應該多掌握一些可移值的...

    kaka 評論0 收藏0
  • 數據結構初探,了解不同類型數據結構

    摘要:數據結構數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。不同類型的數據結構編程世界中存在許多不同類型的數據結構。可以將集合數據結構進行排序,并將其稱為有序集合。 數據結構基本概念 數據元素(Data Element) 數據元素是數據的基本單位,在計算機程序中通常將其作為一個整體進行考慮和處理。一個數據元素可由若干個數據項組成。 數據項 (Data Item) 數據項是數據結...

    chengtao1633 評論0 收藏0
  • Leetcode:完31道鏈表一點總結

    摘要:既然說到地址空間了就順帶說一下上面環形鏈表這道題的另一種很的解法吧。介紹完常規操作鏈表的一些基本知識點后,現在回到快慢指針。 ??前幾天第一次在 Segmentfault 發文—JavaScript:十大排序的算法思路和代碼實現,發現大家似乎挺喜歡算法的,所以今天再分享一篇前兩個星期寫的 Leetcode 刷題總結,希望對大家能有所幫助。 ??本文首發于我的blog 前言 ??今天終于...

    DevTalking 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<