LeetCode_82 刪除排序鏈表中的重復(fù)元素II(鏈表題)

題目地址:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/

題目:

給定一個(gè)排序鏈表汇竭,刪除所有含有重復(fù)數(shù)字的節(jié)點(diǎn)壶熏,只保留原始鏈表中 沒有重復(fù)出現(xiàn) 的數(shù)字拳喻。

示例 1:

輸入: 1->2->3->3->4->4->5
輸出: 1->2->5

試題分析:

該題核心的思路是掃描到節(jié)點(diǎn)后內(nèi)部嵌套一個(gè)循環(huán)繼續(xù)往后遍歷拙已,因?yàn)殒湵硎怯行虻模员闅v到節(jié)點(diǎn)值不相等即可停止修改鏈表連接,一次性將中間重復(fù)的元素刪除就完成了重復(fù)元素的刪除,整個(gè)的時(shí)間復(fù)雜度為O(n),雖然在外循環(huán)內(nèi)部嵌套了一個(gè)循環(huán)憨闰,但是因?yàn)殒湵硎怯行虻模瑑?nèi)部不會(huì)出現(xiàn)再次重復(fù)循環(huán)需五。因?yàn)榭赡軙?huì)對(duì)頭節(jié)點(diǎn)有刪除操作鹉动,所以新建了空頭節(jié)點(diǎn),并記錄刪除節(jié)點(diǎn)前置指針用于刪除重復(fù)節(jié)點(diǎn)使用宏邮。

代碼:

public ListNode deleteDuplicates(ListNode head) {
        ListNode newHead = new ListNode(-1);
        newHead.next = head;
        ListNode pre = newHead;
        if(head==null || head.next==null){
            return head;
        }

        ListNode cur = head;
        while(cur!=null){
            boolean duplicate = false;

            while(cur.next!=null && cur.val==cur.next.val) {
                //對(duì)重復(fù)數(shù)字進(jìn)行循環(huán)刪除
                duplicate = true;
                cur = cur.next;
            }
            //刪除最后一個(gè)重復(fù)節(jié)點(diǎn)
            if(duplicate){
                pre.next = cur.next;
            }else {
                pre.next = cur;
                pre = cur;
            }
            cur = cur.next;
        }
        return newHead.next;
    }

源碼路徑:com.monkey01.linkedlist.RemoveDuplicatesFromSortedListII_82

配套測(cè)試代碼路徑:test目錄com.monkey01.linkedlist.RemoveDuplicatesFromSortedListII_82Test

https://github.com/feiweiwei/LeetCode4Java.git

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末泽示,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蜜氨,更是在濱河造成了極大的恐慌械筛,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件飒炎,死亡現(xiàn)場(chǎng)離奇詭異埋哟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)郎汪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門赤赊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人煞赢,你說我怎么就攤上這事抛计。” “怎么了照筑?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵吹截,是天一觀的道長(zhǎng)瘦陈。 經(jīng)常有香客問我,道長(zhǎng)波俄,這世上最難降的妖魔是什么晨逝? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮弟断,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘趴生。我一直安慰自己阀趴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布苍匆。 她就那樣靜靜地躺著刘急,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浸踩。 梳的紋絲不亂的頭發(fā)上叔汁,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音检碗,去河邊找鬼据块。 笑死,一個(gè)胖子當(dāng)著我的面吹牛折剃,可吹牛的內(nèi)容都是我干的另假。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼怕犁,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼边篮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奏甫,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤戈轿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后阵子,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體思杯,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年挠进,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了智蝠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡奈梳,死狀恐怖杈湾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情攘须,我是刑警寧澤漆撞,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響浮驳,放射性物質(zhì)發(fā)生泄漏悍汛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一至会、第九天 我趴在偏房一處隱蔽的房頂上張望离咐。 院中可真熱鬧,春花似錦奉件、人聲如沸宵蛀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)术陶。三九已至,卻和暖如春煤痕,著一層夾襖步出監(jiān)牢的瞬間梧宫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工摆碉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留塘匣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓巷帝,卻偏偏與公主長(zhǎng)得像馆铁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锅睛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容