题解 | 删除有序链表中重复的元素-II

删除有序链表中重复的元素-II

https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
     //122
    public ListNode deleteDuplicates (ListNode head) {
        if (head==null){
            return null;
        }
        //给head增加一个头结点
        ListNode dummy = new ListNode(0);
        dummy.next = head;

        // write code here
        ListNode pre = dummy;
        ListNode cur = head;
        float value;
        ListNode m;
        while(cur!=null&& cur.next!=null){
            //记录这个点点的值,然后去找下一个不相等的节点
            //如果有重复节点的情况
            if(cur.val==cur.next.val){
                value = cur.val;
                m = cur.next;
            while(m!=null && m.val==value){
                m = m.next;
            }
            pre.next = m; 
            cur = m;
            }else{
                System.out.println(cur.val);
                cur = cur.next;
                System.out.println(cur.val);

                pre = pre.next;
                System.out.println(pre.val);


            }   
        }
        return dummy.next;
    }
}


// 1.如果需要用到pre指针,可以增加虚拟头结点
2.如果写完代码报错,记得检测指针的更新,尤其是两个循环的情况下,每个循环每个指针都要认真看一遍

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务