python实现剑指offer删除链表中重复的节点
生活随笔
收集整理的這篇文章主要介紹了
python实现剑指offer删除链表中重复的节点
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
在一個(gè)排序的鏈表中,存在重復(fù)的結(jié)點(diǎn),請(qǐng)刪除該鏈表中重復(fù)的結(jié)點(diǎn),重復(fù)的結(jié)點(diǎn)不保留,返回鏈表頭指針。 例如,鏈表1->2->3->3->4->4->5 處理后為 1->2->5
解題思路
# -*- coding:utf-8 -*- class ListNode:def __init__(self, x):self.val = xself.next = None class Solution:def deleteDuplication(self, pHead):# 第一步先檢測(cè)一下是不是空的或者是不是只有一個(gè)if pHead is None or pHead.next is None:return pHead# 第二步因?yàn)榉乐沟谝粋€(gè)就是重復(fù)的節(jié)點(diǎn),所以創(chuàng)作一個(gè)新的頭節(jié)點(diǎn)。first = ListNode(-1)# 因?yàn)樾枰獌蓚€(gè)指針,一個(gè)指著重復(fù)結(jié)點(diǎn)上一個(gè)結(jié)點(diǎn),一個(gè)指著重復(fù)結(jié)點(diǎn)后一個(gè)值。first.next = pHeadlast = firstwhile pHead and pHead.next:if pHead.val == pHead.next.val:val = pHead.valwhile pHead and val == pHead.val:pHead = pHead.nextlast.next = pHeadelse:last = pHeadpHead = pHead.nextreturn first.next?
轉(zhuǎn)載于:https://www.cnblogs.com/tianqizhi/p/9646868.html
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的python实现剑指offer删除链表中重复的节点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: day3 and homework
- 下一篇: python array的应用