<LeetCode力扣>83. 删除排序链表中的重复元素

<LeetCode力扣>83. 删除排序链表中的重复元素,第1张

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

示例 1:

输入:head = [1,1,2]
输出:[1,2]

示例 2:

输入:head = [1,1,2,3,3]
输出:[1,2,3]

提示:

(1)链表中节点数目在范围 [0, 300] 内
(2)-100 <= Node.val <= 100
(3)题目数据保证链表已经按升序 排列

======================================================================================================
分析:
用两个指针遍历,删除重复元素的结点即可。

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if(head == null){
            return null;
        }
        ListNode pre = head;
        ListNode rear = head;
        while(pre.next != null){
            rear = pre.next;
            if(pre.val != rear.val){
                pre = rear;
                rear = pre.next;
            }
            else{
                rear = rear.next;
                pre.next = rear;
            }
        }
        return head;
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/792000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存