package 练习;
//删除链表中重复的结点
/**
* 题解
* 首先,该题的意思是删除节点,所以我们需要一个节点来保存着不相等节点前的一个节点first
* 其次我们要需要注意到当节点头是相同节点的时候,我们需要一个节点来保存节点头
* 将当前节点和下一个节点对比,如果相同,则循环比较相同
* 当找到第一个不同的时候,将first指向这个不同的节点
* 如果当前节点和下一个不相同,则first指向下一个
*
* 最后,secede指向下一个节点
*/
public class ShanChuLianBiaoZhongChongFuDeJieDian {
public ListNode deleteDuplication(ListNode pHead){
if(pHead==null||pHead.next==null){
return pHead;
}
ListNode head = new ListNode(-1);
head.next=pHead;
ListNode first = head;
ListNode second = pHead;
while(second!=null){
if(second.next!=null&&second.val==second.next.val){
while(second.next!=null&&second.val==second.next.val)
second=second.next;
first.next = second.next;
}else{
first = first.next;
}
second=second.next;
}
return first.next;
}
}
删除链表中重复的结点
最新推荐文章于 2023-04-13 17:17:20 发布