避免删除头结点
public class Solution {
public ListNode deleteDuplication(ListNode pHead)
{
if(pHead==null)
return null;
ListNode first=new ListNode(-1);
first.next=pHead;
ListNode p=pHead;
ListNode pre=first;
while(p!=null && p.next!=null)
{
if(p.val==p.next.val)
{
int val=p.val;
while(p!=null && p.val==val)
{
p=p.next;
}
pre.next=p;
}
else{
pre=p;
p=p.next;
}
}
return first.next;
}
}
本文介绍了一种在链表中删除所有重复节点的方法,通过使用一个虚拟头结点简化了处理过程,确保了头结点不会被误删。算法遍历链表,当遇到重复节点时跳过所有相同值的节点,并更新前驱节点的next指针。
5万+

被折叠的 条评论
为什么被折叠?



