算法作為極其重要的一點(diǎn),是大學(xué)生畢業(yè)找工作的核心競(jìng)爭(zhēng)力,所以為了不落后與人,開始刷力扣算法題!
大家好,我是布小禪,一個(gè)盡力讓無(wú)情的代碼變得生動(dòng)有趣的IT小白,很高興能偶認(rèn)識(shí)你,關(guān)注我,每天堅(jiān)持學(xué)點(diǎn)東西,我們以后就是大佬啦!
? 博客主頁(yè):?布小禪?
? 作者專欄:
?Python?
?Java?這是我刷第 51/100 道力扣簡(jiǎn)單題
存在一個(gè)按升序排列的鏈表,給你這個(gè)鏈表的頭節(jié)點(diǎn) head ,請(qǐng)你刪除所有重復(fù)的元素,使每個(gè)元素 只出現(xiàn)一次 。
返回同樣按升序排列的結(jié)果鏈表。
示例1:
輸入:head = [1,1,2]輸出:[1,2]
示例2:
輸入:head = [1,1,2,3,3]輸出:[1,2,3]
提示:鏈表中節(jié)點(diǎn)數(shù)目在范圍 [0, 300] 內(nèi)
-100 <= Node.val <= 100
題目數(shù)據(jù)保證鏈表已經(jīng)按升序排列
思 路 1 : /color{green}{思路1:} 思路1:
首先考慮特殊情況當(dāng)只有0或者1個(gè)節(jié)點(diǎn)時(shí),返回本身
將頭結(jié)點(diǎn)copy給一個(gè)變量
遍歷鏈表,如果當(dāng)前值與下一個(gè)值相同,則將當(dāng)前節(jié)點(diǎn)的下一節(jié)點(diǎn)指向下下一節(jié)點(diǎn)
否則就更新變量
最后返回copy的頭結(jié)點(diǎn)
# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def deleteDuplicates(self, head: ListNode) -> ListNode: ans = head # 將頭結(jié)點(diǎn)copy給一個(gè)變量 if head==None or head.next == None: return head # 首先考慮特殊情況當(dāng)只有0或者1個(gè)節(jié)點(diǎn)時(shí),返回本身 while head.next != None: # 遍歷鏈表 if head.val == head.next.val: head.next = head.next.next # 如果當(dāng)前值與下一個(gè)值相同,則將當(dāng)前節(jié)點(diǎn)的下一節(jié)點(diǎn)指向下下一節(jié)點(diǎn) else: head = head.next # 否則就更新變量 return ans # 最后返回copy的頭結(jié)點(diǎn)
/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int val=0, ListNode next=null) { * this.val = val; * this.next = next; * } * } */ /* 首先考慮特殊情況當(dāng)只有0或者1個(gè)節(jié)點(diǎn)時(shí),返回本身 將頭結(jié)點(diǎn)copy給一個(gè)變量 遍歷鏈表,如果當(dāng)前值與下一個(gè)值相同,則將當(dāng)前節(jié)點(diǎn)的下一節(jié)點(diǎn)指向下下一節(jié)點(diǎn) 否則就更新變量 最后返回copy的頭結(jié)點(diǎn) */public class Solution { public ListNode DeleteDuplicates(ListNode head) { if (head==null||head.next==null) return head; // 首先考慮特殊情況當(dāng)只有0或者1個(gè)節(jié)點(diǎn)時(shí),返回本身 ListNode start = head; // 將頭結(jié)點(diǎn)copy給一個(gè)變量 while(head.next!=null) // 遍歷鏈表,如果當(dāng)前值與下一個(gè)值相同,則將當(dāng)前節(jié)點(diǎn)的下一節(jié)點(diǎn)指向下下一節(jié)點(diǎn) { if (head.val==head.next.val) head.next = head.next.next; // 遍歷鏈表,如果當(dāng)前值與下一個(gè)值相同,則將當(dāng)前節(jié)點(diǎn)的下一節(jié)點(diǎn)指向下下一節(jié)點(diǎn) else head = head.next; // 否則就更新變量 } return start; // 最后返回copy的頭結(jié)點(diǎn) }}
堅(jiān)持最重要,每日一題必不可少!?
期待你的關(guān)注和督促!?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/119312.html
摘要:題目要求從有序鏈表中刪除重復(fù)的數(shù)字,并且返回刪除后的頭結(jié)點(diǎn)例如輸入鏈表為返回這題和相似,只是數(shù)據(jù)結(jié)構(gòu)從數(shù)組變成了鏈表若還有更好的思路,請(qǐng)多多指教想要了解更多開發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾 題目要求: 從有序鏈表中刪除重復(fù)的數(shù)字,并且返回刪除后的頭結(jié)點(diǎn)例如輸入鏈表為1->1->2,返回1->2 這題和leetcode26相似,只是數(shù)據(jù)結(jié)構(gòu)從數(shù)組變成了鏈表 /*...
馬上就要開始啦這次共組織15個(gè)組隊(duì)學(xué)習(xí) 涵蓋了AI領(lǐng)域從理論知識(shí)到動(dòng)手實(shí)踐的內(nèi)容 按照下面給出的最完備學(xué)習(xí)路線分類 難度系數(shù)分為低、中、高三檔 可以按照需要參加 - 學(xué)習(xí)路線 - showImg(https://segmentfault.com/img/remote/1460000019082128); showImg(https://segmentfault.com/img/remote/...
摘要:給定表,存在函數(shù),對(duì)任意給定的關(guān)鍵字值,代入函數(shù)后若能得到包含該關(guān)鍵字的記錄在表中的地址,則稱表為哈希表,函數(shù)為哈希函數(shù)。而中的對(duì)象就是基于哈希表結(jié)構(gòu),所以我們構(gòu)造一個(gè)對(duì)象即可,是當(dāng)前遍歷到的值,是其與目標(biāo)值的差。 大部分玩前端的小伙伴,在算法上都相對(duì)要薄弱些,畢竟調(diào)樣式、調(diào)兼容就夠掉頭發(fā)的了,哪還有多余的頭發(fā)再去折騰。 確實(shí)在前端中需要使用到算法的地方是比較少,但若要往高級(jí)方向發(fā)展,...
閱讀 3486·2023-04-26 02:48
閱讀 1475·2021-10-11 10:57
閱讀 2502·2021-09-23 11:35
閱讀 1210·2021-09-06 15:02
閱讀 3310·2019-08-30 15:54
閱讀 1626·2019-08-30 15:44
閱讀 893·2019-08-30 15:44
閱讀 1000·2019-08-30 12:52