LeetCode简单题之删除排序链表中的重复元素
生活随笔
收集整理的這篇文章主要介紹了
LeetCode简单题之删除排序链表中的重复元素
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目
給定一個(gè)已排序的鏈表的頭 head , 刪除所有重復(fù)的元素,使每個(gè)元素只出現(xiàn)一次 。返回 已排序的鏈表 。
示例 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)按升序 排列
來源:力扣(LeetCode)
解題思路
??題目所給的鏈表已經(jīng)有序,所以如果在遍歷的過程中遇到一個(gè)元素,那么重復(fù)的元素一定都是連續(xù)的。刪除的時(shí)候直接使用next指針指向下一個(gè)的下一個(gè)元素,python會自動(dòng)回收中間被刪除的元素。
??另外需要注意的細(xì)節(jié)就是當(dāng)重復(fù)的元素堆積在鏈表的尾端,需要將尾巴直接截?cái)唷?/p>
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:def deleteDuplicates(self, head: ListNode) -> ListNode:if head==None or head.next==None:return headp=headwhile head.next:if head.val==head.next.val:if head.next.next:head.next=head.next.nextelse:head.next=Nonebreakelse:head=head.nextreturn p
總結(jié)
以上是生活随笔為你收集整理的LeetCode简单题之删除排序链表中的重复元素的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之拥有最多糖果的孩
- 下一篇: LeetCode简单题之山羊拉丁文