摘要:題目描述刪除有序鏈表中的重復(fù)節(jié)點,返回頭節(jié)點刪除掉所有重復(fù)節(jié)點,例如,返回重復(fù)的節(jié)點中保留一個,例如,返回刪除掉所有重復(fù)節(jié)點細節(jié)這里面有幾個需要注意的細節(jié)新建一個空的頭節(jié)點,因為這里面牽扯到換新的鏈表頭的問題,所
題目描述
刪除有序鏈表中的重復(fù)節(jié)點,返回頭節(jié)點
刪除掉所有重復(fù)節(jié)點,例如1->1->2->2->3->4,返回3->4
重復(fù)的節(jié)點中保留一個,例如1->1->2->2->3->4,返回1->2->3->4
刪除掉所有重復(fù)節(jié)點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; }
細節(jié)
這里面有幾個需要注意的細節(jié):
新建一個空的頭節(jié)點,因為這里面牽扯到換新的鏈表頭的問題,所以為了方便新建一個新的節(jié)點作為鏈表的頭節(jié)點
每個重復(fù)節(jié)點中保留一個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; }
細節(jié)
這個和刪除掉所有重復(fù)節(jié)點的區(qū)別就是發(fā)現(xiàn)有相同的節(jié)點時,pre指針立馬指向重復(fù)的節(jié)點中的第一個節(jié)點
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/95522.html
文章目錄 ?? 前言 ??? 作者簡介 ?? 一、題目描述 ?? 二、題目解析 ?? 三、代碼 ??? 1??. python ???? 2??. C# ?? ? 結(jié)語 ? ?? 前言 ?? 算法作為極其重要的一點,是大學(xué)生畢業(yè)找工作的核心競爭力,所以為了不落后與人,開始刷力扣算法題! ? 作者簡介 ? 大家好,我是布小禪,一個盡力讓無情的代碼變得生動有趣的IT小白,很高興能偶認識你,關(guān)注我...
摘要:題目描述請編寫一個函數(shù),使其可以刪除某個鏈表中給定的非末尾節(jié)點,你將只被給定要求被刪除的節(jié)點。鏈表中所有節(jié)點的值都是唯一的。給定的節(jié)點為非末尾節(jié)點并且一定是鏈表中的一個有效節(jié)點。 題目描述 請編寫一個函數(shù),使其可以刪除某個鏈表中給定的(非末尾)節(jié)點,你將只被給定要求被刪除的節(jié)點。 現(xiàn)有一個鏈表 -- head = [4,5,1,9],它可以表示為: 4 -> 5 -> 1 -> 9 示...
摘要:每個線性表上的數(shù)據(jù)最多只有前和后兩個方向。數(shù)組鏈表隊列棧等就是線性表結(jié)構(gòu)。非線性表數(shù)據(jù)之間并不是簡單的前后關(guān)系。不包含任何元素的棧稱為空棧。移除棧頂?shù)脑兀瑫r返回被移除的元素。 showImg(https://segmentfault.com/img/bVbuvnj?w=900&h=250); 前言 基礎(chǔ)知識就像是一座大樓的地基,它決定了我們的技術(shù)高度。 我們應(yīng)該多掌握一些可移值的...
摘要:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。不同類型的數(shù)據(jù)結(jié)構(gòu)編程世界中存在許多不同類型的數(shù)據(jù)結(jié)構(gòu)。可以將集合數(shù)據(jù)結(jié)構(gòu)進行排序,并將其稱為有序集合。 數(shù)據(jù)結(jié)構(gòu)基本概念 數(shù)據(jù)元素(Data Element) 數(shù)據(jù)元素是數(shù)據(jù)的基本單位,在計算機程序中通常將其作為一個整體進行考慮和處理。一個數(shù)據(jù)元素可由若干個數(shù)據(jù)項組成。 數(shù)據(jù)項 (Data Item) 數(shù)據(jù)項是數(shù)據(jù)結(jié)...
摘要:既然說到地址空間了就順帶說一下上面環(huán)形鏈表這道題的另一種很的解法吧。介紹完常規(guī)操作鏈表的一些基本知識點后,現(xiàn)在回到快慢指針。 ??前幾天第一次在 Segmentfault 發(fā)文—JavaScript:十大排序的算法思路和代碼實現(xiàn),發(fā)現(xiàn)大家似乎挺喜歡算法的,所以今天再分享一篇前兩個星期寫的 Leetcode 刷題總結(jié),希望對大家能有所幫助。 ??本文首發(fā)于我的blog 前言 ??今天終于...
閱讀 898·2023-04-26 01:37
閱讀 3371·2021-09-02 15:40
閱讀 961·2021-09-01 10:29
閱讀 2895·2019-08-29 17:05
閱讀 3425·2019-08-28 18:02
閱讀 1183·2019-08-28 18:00
閱讀 1492·2019-08-26 11:00
閱讀 2613·2019-08-26 10:27