当前位置: 首页 > 后端技术 > Python

剑指offer(18)删除重复链表

时间:2023-03-26 11:48:55 Python

愿蟒蛇天堂无指点。#-*-coding:utf-8-*-#classListNode:#def__init__(self,x):#self.val=x#self.next=Noneclass解决方案:defdeleteDuplication(self,pHead):#前驱节点指针pre_node=None#当前节点指针p=pHeadwhilep:#下一个节点指针next_node=p.next#如果下一个节点存在,并且当前节点的值等于下一个节点的值,则需要deletedifnext_nodeandp.val==next_node.val:#要删除的值用于删除连续重复的值dup_value=p.val#连续删除,将next_node指针往后移whilenext_nodeandnext_node.val==dup_value:next_node=next_node.next#删除的点如果不是头节点pre_node:pHead=next_node#将前驱节点连接到下一个不重复的值else:pre_node.next=next_node#操作后移动p=next_nodeelse:pre_node=pp=p.下一个返回pHead