程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python描述 LeetCode 82. 刪除排序鏈表中的重復元素 II

編輯:Python

Python描述 LeetCode 82. 刪除排序鏈表中的重復元素 II

大家好,我是亓官劼(qí guān jié ),在【亓官劼】公眾號、CSDN、GitHub、B站等平台分享一些技術博文,主要包括前端開發、python後端開發、小程序開發、數據結構與算法、docker、Linux常用運維、NLP等相關技術博文,時光荏苒,未來可期,加油~

如果喜歡博主的文章可以關注博主的個人公眾號【亓官劼】(qí guān jié),裡面的文章更全更新更快。如果有需要找博主的話可以在公眾號後台留言,我會盡快回復消息.


本文原創為【亓官劼】(qí guān jié ),請大家支持原創,部分平台一直在惡意盜取博主的文章!!! 全部文章請關注微信公眾號【亓官劼】。

題目

給定一個已排序的鏈表的頭 head刪除原始鏈表中所有重復數字的節點,只留下不同的數字 。返回 已排序的鏈表

示例 1:

輸入:head = [1,2,3,3,4,4,5]
輸出:[1,2,5]

示例 2:

輸入:head = [1,1,1,2,3]
輸出:[2,3]

提示:

  • 鏈表中節點數目在范圍 [0, 300]
  • -100 <= Node.val <= 100
  • 題目數據保證鏈表已經按升序 排列

Python描述

雙指針,找沒有重復的結點

# 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:
th = ListNode(-1,head)
p,q = th,th
while q:
q = q.next
nc = 0
while q and q.next and q.next.val == q.val:
q = q.next
nc += 1
if nc == 0:
p.next = q
p = p.next
return th.next

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved