112. 删除排序链表中的重复元素

描述

给定一个排序链表,删除所有重复的元素每个元素只留下一个。

样例

给出 1->1->2->null,返回 1->2->null
给出 1->1->2->3->3->null,返回 1->2->3->null

代码

/**
 * Definition for ListNode
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */

public class Solution {
    /**
     * @param head: head is the head of the linked list
     * @return: head of linked list
     */
    public ListNode deleteDuplicates(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
        
        ListNode node = head;
        
        while (node.next != null) {
            if (node.val == node.next.val) {
                node.next = node.next.next;
            } else {
                node = node.next;
            }
        }
        
        return head;
    }
}

本题犯了一个常识性错误:如果 node = node.next 不写在 else 里面则 if 条件语句执行完后就会继续执行 node = node.next,换句话说就是该语句在 while 循环时无条件执行,而实际上只有在满足 node.val != node.next.val 时才应该执行该语句

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 给定一个排序链表,删除所有重复的元素每个元素只留下一个。样例给出 1->1->2->null,返回 1->2->n...
    和蔼的zhxing阅读 2,350评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,956评论 18 399
  • Scala与Java的关系 Scala与Java的关系是非常紧密的!! 因为Scala是基于Java虚拟机,也就是...
    灯火gg阅读 8,824评论 1 24
  • 作为一头动物,在这个明朗的三月里李花生愈发敏感的能感受到这世界的季节更替了。她突然能够感受到来自潮汐更替带给自己的...
    L_哩阅读 2,990评论 0 0
  • 1.一般不良习惯抽烟 喝酒 纵欲 焦虑 紧张 2.肝癌 生闷气,多喝白酒; 中风 多喝啤酒,生气 ...
    雷一凡阅读 1,495评论 0 0