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

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

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


/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    public ListNode deleteDuplicates (ListNode head) {
        // write code here
        if(head == null || head.next == null) return head;
        ListNode dummyHead = new ListNode(-1);
        dummyHead.next = head;
        ListNode curr = dummyHead;
        while(curr.next != null && curr.next.next != null) { // curr.next.val == curr.next.next.val要用到curr.next 和curr.next.next 因此这两个不能为null
            if(curr.next.val == curr.next.next.val) {
                int x = curr.next.val;
                while(curr.next != null && curr.next.val == x) { // 删除多个元素 用循环实现
                    curr.next = curr.next.next;
                }
            }else {
                curr = curr.next;
            }
        }
        return dummyHead.next;
    }
}
全部评论

相关推荐

今天 11:42
江西农业大学 C++
点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司7个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 15:39
希望奇迹发生的布莱克...:真的是 现在卷实习就是没苦硬吃
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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