当前位置: 首页 > 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;
}

http://www.dtcms.com/a/47719.html

相关文章:

  • 【计算机网络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
  • B3DM转换成PLY
  • Spark之数据倾斜调优
  • 【后端】Flask vs Django vs Node.js 对比分析
  • Linux系统(以Ubuntu为例)安装高版本nodejs
  • 爬虫:一文掌握 Celery 分布式爬虫,及对应实战案例
  • 《AI模型变形记:从绿巨人到Hello Kitty的魔幻减肥营》
  • 【计算机网络——概述】
  • 【3D格式转换SDK】HOOPS Exchange技术概览(二):3D数据处理高级功能
  • 如何合理设置请求间隔?
  • 如何优化百度下拉框?下拉框展示规则是怎样的?