LeetCode刷题--删除链表中的重复元素

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

示例 1:

输入: 1->1->2
输出: 1->2

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
 //这段代码思路很简单
 //但是在debug 过程中出现两处错误
 //第一处是while后面的条件,应该预先判断current!=null,否则会报出空指针异常
 //第二处是if语句后面未加else,系统给出测试用例为[1,1,1],如果不加else,结果为[1,1]
 //显然不加else在进行第一次判断之后,只会删除一次1,直接走下面的语句,如果是if。else则会判断一次后,在返回判断第二次
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        ListNode current = head;
        
    while (current != null && current.next != null){
        if(current.next.val == current.val){
            current.next = current.next.next;
        }else{current = current.next;}
        }
         return head;

       
}

}

发布了29 篇原创文章 · 获赞 1 · 访问量 1236

猜你喜欢

转载自blog.csdn.net/weixin_42082088/article/details/104088940