Leetcode82删除排序链表中重复元素2

代码:

为了找到结果的head 可以在head前加一个dummy dummy->head 再顺序去重

java 复制代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if(head==null)return head;
        // while(head.next!=null&&head.val==head.next.val){
        //     while(n1!=null&&n1.next!=null&&n1.val==n1.next.val){
        //         if(n1.next.next!=null){
        //             head=n1.next.next;
        //         }else{
        //             return null;
        //         }
        //         n1=n1.next;
        //     }
        // }
        if(head.next==null)return head;
        ListNode dummy = new ListNode(0,head);
        ListNode n1 = dummy;

        while(n1.next!=null&&n1.next.next!=null){
            ListNode n2 = n1.next;
            ListNode n3 = n1.next.next;
            if(n2.val==n3.val){
                while(n2.val==n3.val){
                    n2 = n3;
                    n3 = n3.next;
                    if(n2==null||n3==null){
                        n1.next=null;
                        break;
                    }else{
                        n1.next = n3;
                    }                    
                }
            }else{
                n1=n1.next;
            }
        }
        return dummy.next;
    }
}
相关推荐
ChoSeitaku3 小时前
链表交集相关算法题|AB链表公共元素生成链表C|AB链表交集存放于A|连续子序列|相交链表求交点位置(C)
数据结构·考研·链表
偷心编程3 小时前
双向链表专题
数据结构
香菜大丸3 小时前
链表的归并排序
数据结构·算法·链表
jrrz08283 小时前
LeetCode 热题100(七)【链表】(1)
数据结构·c++·算法·leetcode·链表
@小博的博客3 小时前
C++初阶学习第十弹——深入讲解vector的迭代器失效
数据结构·c++·学习
南宫生4 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
泉崎5 小时前
11.7比赛总结
数据结构·算法
你好helloworld5 小时前
滑动窗口最大值
数据结构·算法·leetcode
JSU_曾是此间年少6 小时前
数据结构——线性表与链表
数据结构·c++·算法
sjsjs116 小时前
【数据结构-合法括号字符串】【hard】【拼多多面试题】力扣32. 最长有效括号
数据结构·leetcode