Leetcode刷题之旅(每日一题)--面试题 02.01. 移除重复节点

    本文介绍了一种使用HashSet去重链表元素的方法,通过遍历链表并将节点值加入HashSet来实现,同时讨论了不使用额外空间的进阶解法。

    摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    题目描述:
    在这里插入图片描述
    思路:去重第一个想到的就是用hash表,不多说直接上,没什么难度。唯一需要注意一下的是题目给的链表的head直接就是一个包含数据的实际节点,而不是一些单链表中用head空结点来代表一个链表。另外要注意下判断链表是否重复要用该节点的val值,放入hash表中的也应该是各个节点的val值。(第一次不用Idea而是直接在leetcode上写代码,感觉还是非常不一样的啊,没有Idea的一些方法的提示很不习惯啊)

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution {
        public ListNode removeDuplicateNodes(ListNode head) {
            HashSet hs=new HashSet();
            ListNode pre=head;
            if(head==null)return head;
            hs.add(head.val);
            ListNode now=head.next;
            while(now!=null){
                if(hs.contains(now.val)){
                    pre.next=now.next;
                    now=null;
                    now=pre.next;
                }else{
                    hs.add(now.val);
                    pre=now;
                    now=now.next;
                }
            }
            return head;
        }
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    关于进阶不用缓冲区,想要用时间复杂度O(n)来实现想了很久也想不到,只能用暴力法双重循环。看了下题解,不用缓冲区也只能用双循环来解决了。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值

    举报

    选择你想要举报的内容(必选)
    • 内容涉黄
    • 政治相关
    • 内容抄袭
    • 涉嫌广告
    • 内容侵权
    • 侮辱谩骂
    • 样式问题
    • 其他
    点击体验
    DeepSeekR1满血版
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回顶部

    登录后您可以享受以下权益:

    ×