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