从链表中移除在数组中存在的节点 | 力扣题解

简单说两句

✨ 正在努力的小叮当~
💖 超级爱分享,分享各种有趣干货!
👩‍💻 提供:模拟面试 | 简历诊断 | 独家简历模板
🌈 感谢关注,关注了你就是我的超级粉丝啦!
🔒 以下内容仅对你可见~

作者:小叮当撩代码CSDN后端领域新星创作者 |阿里云专家博主

CSDN个人主页小叮当撩代码

🔎GZH哆啦A梦撩代码

🎉欢迎关注🔎点赞👍收藏⭐️留言📝

056dd17dd0506591d04525f015765ab749e9f9f19dcaf6e0dcae5d77057d2392-15@3x

亲爱的老板们,我们今天来看一道链表的经典题:

好了,不说废话,只讲干货,直接开始❤️

💕题目

题目:从链表中移除在数组中存在的节点

贴心链接:从链表中移除在数组中存在的节点

image-20240714200112805

❤️‍🔥思路分析

  • 使用数组占位的思想模拟一个map
  • 初始化 ans 链表
  • tail用于追踪链表的尾部
  • 循环head链表
  • 返回结果 ans->next (因为头结点没有用到)

💖Ac代码

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    int a[100010];
    ListNode* modifiedList(vector<int>& nums, ListNode* head) {
        for(auto x:nums){
            a[x]++;
        }
        // 初始化 ans 链表的头节点
        ListNode* ans = new ListNode(-1); 
        ListNode* tail = ans; 
        while(head != nullptr) {
            if(a[head->val] == 0) { 
                tail->next = new ListNode(head->val);
                tail = tail->next; 
            }
            head = head->next; 
        }
       return ans->next;

    }
};

好的啊,这个也是通过了啊,好起来了

这种题在实习校招中可能会遇到,家人们阔以学习学习额~

image-20240714200913501

Ok啊,也是成功拿下了,咱们下期再见💕💕~

【都看到这了,点点赞点点关注呗,爱你们】😚😚

蓝白色微信公众号大学生校园清新简单纸飞机动态引导关注简洁新媒体分享中文动态引导关注

💬

✨ 正在努力的小叮当~
💖 超级爱分享,分享各种有趣干货!
👩‍💻 提供:模拟面试 | 简历诊断 | 独家简历模板
🌈 感谢关注,关注了你就是我的超级粉丝啦!
🔒 以下内容仅对你可见~

作者:小叮当撩代码CSDN后端领域新星创作者 |阿里云专家博主

CSDN个人主页小叮当撩代码

🔎GZH哆啦A梦撩代码

🎉欢迎关注🔎点赞👍收藏⭐️留言📝

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不正经小新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值