''' 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点, 重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 ''' # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def deleteDuplication(self, pHead): # write code here if not pHead or pHead.next is None: return pHead before=ListNode(float('inf')) before.next=pHead save_h=before temp=pHead after=pHead.next value=temp.val while(before and temp and after): if after.val==value: # 如果当前after指针指向的元素等于temp指针指向的元素 # 则沿着after指针一直向后找到第一个数据域不等于temp value的节点mid mid=after while(mid and mid.val==value): mid=mid.next if mid==None: before.next=mid break else: before.next=mid temp=mid after=mid.next value=mid.val else: # 如果after的数值不等于temp的数值,则更新value值 value=after.val before=before.next temp=temp.next after=after.next return save_h.next ''' 比如对于单向链表 1—>2—>3—>3—>3—>4—>4—>5 首先在链表首部添加上None None—>1—>2—>3—>3—>3—>4—>4—>5 '''
python 删除链表中重复的结点
猜你喜欢
转载自blog.csdn.net/WYXHAHAHA123/article/details/89919842
今日推荐
周排行