当前位置: 首页 > news >正文

面试题02.01.移除重复节点

编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。

示例1:

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

示例2:

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

提示:

  1. 链表长度在[0, 20000]范围内。
  2. 链表元素在[0, 20000]范围内。

进阶:

如果不得使用临时缓冲区,该怎么解决?

题解:

小编在写这道题的时候没有使用缓冲区的方法,而是定义了两个指针p,q

p指针指向head,q指针指向p

即在给定的链表上使用双重循环,第一重循环从链表的头节点开始,枚举一个保留的节点,也就是保留最开始出现的节点。第二重循环是从枚举的保留节点开始,到链表的末尾结束,将所以与其保留节点相同的节点全部移除。

这样也就是用时间换空间,时间复杂度会增加

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* removeDuplicateNodes(struct ListNode* head) {
    if(head==NULL||head->next==NULL)
    {
        return head;
    }
    struct ListNode*p=head;
    while(p!=NULL&&p->next!=NULL)
    {
        struct ListNode*q=p;
        while(q->next!=NULL)
        {
        if(p->val==q->next->val)
        {
            q->next=q->next->next;
        }
        else{
            q=q->next;
        }
        }
        p=p->next;
    }
    return head;
}

相关文章:

  • 【计算机网络03】网络层协议IP(详细)
  • 苹果的 AI 紧急情况
  • KMP算法!
  • Linux 基础---sudo权限 修改文件所属人、用户所属组
  • 【论文阅读笔记】用于恶劣天气条件下的目标检测的IA-YOLO(Image-Adaptive YOLO) | 适合雾天和低光照场景
  • 爱吃蟠桃的孙悟空
  • Deepseek API+Python测试用例一键生成与导出
  • JavaWeb(Day8)-登录校验(JWT令牌,Filter过滤器,Interceptor拦截器)
  • MySQL零基础教程14—子查询
  • Mybatis 的代理开发方式
  • golang接口
  • JS逆向获取算法 使用算法逻辑进行爆破
  • 晨控CK-FR03与汇川H5U系列PLC配置EtherCAT通讯连接手册
  • 蓝桥杯真题解题思路——因数计数
  • [免费]微信小程序(校园)二手交易系统(uni-app+SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
  • C++小课堂——构造函数与析构函数
  • 2025 Lakehouse 趋势全景展望:从技术演进到商业重构
  • Linux线程
  • Tauri+React+Ant Design跨平台开发环境搭建指南
  • Maven
  • 习近平圆满结束对俄罗斯国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典
  • 高龄老人骨折后,生死可能就在家属一念之间
  • 第四轮伊美核谈判将于11日在阿曼举行
  • 马云再次现身阿里打卡创业公寓“湖畔小屋”,鼓励员工坚持创业精神
  • 越怕出错越会出错,“墨菲定律”的魔咒该怎么破?
  • 看展览|2025影像上海艺博会:市场与当代媒介中的摄影