LetCode#83(JAVA)存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。 返回同样按升序排列的结果链表。

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

题目

存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。

返回同样按升序排列的结果链表。

举例

在这里插入图片描述

思路:

题目中给了链表有序,所有很容易想到从头开始遍历,如果指向的下一个和当前的值相同,就指向下下一个,一次循环,直到最后!

代码

    public ListNode deleteDuplicates(ListNode head) {
        if (head == null) {
            return head;
        }

        ListNode cur = head;
        while (cur.next != null) {
            if (cur.val == cur.next.val) {
                cur.next = cur.next.next;
            } else {
                cur = cur.next;
            }
        }
        return head;
    }

总结:

其实明白链表的原理也就明白这题的解法,题目给了有序,就很简单了,这里我在想如果无序,是否可以让他排成有序再解决!

2021年9月28日18:13:11


版权声明:本文为weixin_45900968原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。