在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。 例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5
首先我們需要找到哪些是重複的節點,因而需要遍歷一下鍊錶。然後在鍊錶內部進行刪除。值得注意的是,如果要刪除乙個節點,我們最好在當前節點的next節點進行定位,不然需要重新get乙個pre指標。
# -*- coding:utf-8 -*-
# class listnode:
# def __init__(self, x):
# self.val = x
# self.next = none
class solution:
def deleteduplication(self, phead):
# write code here
cnt=
if not phead:
return phead
p=phead
while p:
p=p.next
cnt2=
for i in cnt:
if cnt.count(i)==1:
res=listnode(0)
tmp=res
for i in cnt2:
tmp.next=listnode(i)
tmp=tmp.next
return res.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 遞迴 遞迴的方法就像是先判斷第乙個節點和之後的節...