題目描述
在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。 例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5
思路
新建乙個頭結點,利用p1和p2指標判斷鍊錶中結點是否相等,利用flag標識當前不同的兩個結點之前的結點是否重複。
# -*- coding:utf-8 -*-
# class listnode:
# def __init__(self, x):
# self.val = x
# self.next = none
class
solution
:def
deleteduplication
(self, phead)
:# write code here
ifnot phead:
return
none
p1,p2 = phead,phead.
next
newhead = listnode(0)
p3=newhead
flag=
false
while p1 and p2:
if p1.val==p2.val:
flag=
true
else
:if flag==
true
: flag=
false
else
: p3.
next
=p1 p3=p3.
next
p1=p1.
next
p2=p2.
next
ifnot p2:
if flag==
false
: p3.
next
=p1 else
: p3.
next
=none
return newhead.
next
劍指offer 鍊錶 刪除鍊錶中的重複節點
題目在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 思路分析 思路一 使用linkedlist儲存不重複節點,重構鍊錶 分析評價 這個方法是乙個比較直接且容易想到的方法,使用時只要注意一些情況...
劍指offer 刪除鍊錶中重複的結點(鍊錶)
在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 class solution listnode ans newlistnode 1 ans next phead listnode link a...
劍指Offer 鍊錶 刪除鍊錶中重複的結點
題目 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5。注意該鍊錶為排序鍊錶,重複的節點不保留哦!public class listnode 1 遞迴 遞迴的方法就像是先判斷第乙個節點和之後的節...