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

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

链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/

解题思路

由于给定的链表是排好序的,因此重复的元素在链表中出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。

具体地,我们从指针cur 指向链表的头节点,随后开始对链表进行遍历。如果当前 cur 与 cur.next 对应的元素相同,那么我们就将 cur.next 从链表中移除;否则说明链表中已经不存在其它与 cur 对应的元素相同的节点,因此可以将 cur 指向 cur.next。

当遍历完整个链表之后,我们返回链表的头节点即可。

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

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

LeetCode83 删除排序链表中的重复元素 代码

   public static ListNode deleteDuplicates(ListNode head) {

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

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

 参考链接(本文仅限个人学习交流,支持原创,侵权必删)

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/solution/hua-jie-suan-fa-83-shan-chu-pai-xu-lian-biao-zhong/

上一篇:【链表】删除链表的节点( leetcode18)


下一篇:leetcode2 两数相加