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;
    }
}
相关推荐
月盈缺1 小时前
学习嵌入式的第二十四天——数据结构——队列和树
数据结构·学习
Elieal2 小时前
Java 链表完全指南:从基础到力扣简单题实战
java·leetcode·链表
Y4090016 小时前
Java算法之排序
java·数据结构·笔记·算法
艾莉丝努力练剑8 小时前
【C语言16天强化训练】从基础入门到进阶:Day 6
c语言·数据结构·学习·算法
快去睡觉~8 小时前
力扣1005:k次取反后最大化的数组和
数据结构·算法·leetcode
想不明白的过度思考者9 小时前
初识数据结构——Map和Set:哈希表与二叉搜索树的魔法对决
数据结构·散列表
天意生信云9 小时前
生信分析自学攻略 | R语言数据筛选和修改
数据结构·经验分享·r语言
月盈缺9 小时前
学习嵌入式第二十三天——数据结构——栈
数据结构·学习
fs哆哆21 小时前
在VB.net中一维数组,与VBA有什么区别
java·开发语言·数据结构·算法·.net
gihigo19981 天前
matlab多目标优化差分进化算法
数据结构·算法