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

C++面试(5)-----删除链表中指定值的节点

  • 操作系统:ubuntu22.04
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

给定一个单向链表的头节点 head 和一个特定值 val,要求编写一个函数来删除链表中所有值等于 val 的节点,并返回修改后的链表头节点。
示例:

输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5

解决方案

#include <iostream>struct ListNode
{int val;ListNode *next;ListNode(int x):val(x), next(nullptr){}
};void removeElements(ListNode* head, int val)
{while (head != nullptr && head->val == val){ListNode *tmp = head;head = head->next;delete tmp;}if(head ==nullptr){return;}ListNode *Cur = head;while(Cur->next != nullptr){if(Cur->next->val == val){ListNode* tmp = Cur->next;Cur->next = Cur->next->next;delete tmp;} else{Cur = Cur->next;}  }
}void printList(ListNode *head)
{while(head != nullptr){std::cout << head->val;head = head->next;} 
}
int main()
{ListNode *head = new ListNode(1);head->next = new ListNode(2);head->next->next = new ListNode(3);head->next->next->next = new ListNode(4);head->next->next->next->next = new ListNode(5);head->next->next->next->next->next = new ListNode(6);removeElements(head, 6);printList(head);
}

运行结果

12345

注意事项

  • 处理头节点:首先检查并处理头节点是否为要删除的目标值,因为头节点没有前驱节点。
  • 遍历链表:对于每个节点,检查其下一个节点的值是否为目标值。如果是,则跳过该节点(即改变当前节点的 next 指针指向下一个节点的下一个节点)。
  • 内存管理:每次删除节点时,记得释放被删除节点占用的内存,避免内存泄漏。

相关文章:

  • Spring | 深入解析 Spring AOP 中的AopProxyUtils.ultimateTargetClass()解决代理对象注解获取问题
  • 如何选择合适的IP轮换周期
  • Arduino入门教程:0、课程介绍认识Arduino
  • html转markdown
  • 第二十六课:手搓梯度增强
  • AAT Bioquest活细胞钙成像新利器——Calbryte 520.AM在动态监测中的核心优势与应用解析
  • vue3提供的hook和通常的函数有什么区别
  • 【2025最新】Adobe Illustrator下载保姆级安装教程(附官方下载链接)
  • Fastapi + vue3 自动化测试平台(6):AI + Web UI的完美结合
  • debian12 修改MariaDB数据库存储位置报错
  • 让Python成为你的网站引擎:Django全栈开发初体验!!!
  • Django中的ORM的使用步骤----以MySQL为例
  • 【热更新知识】学习一 Lua语法学习
  • 关于使用WebSocket时无法使用@Autowired 注入的问题
  • DNS小结
  • 探索奇妙的LLM应用:提高工作效率的AI代理和RAG合集
  • 高斯函数(Gaussian Function)
  • 别人如何访问我的内网呢? 设置让外网访问内网本地服务器和指定端口应用的几种方式
  • 认识RNN-循环神经网络
  • mysql中不等于走索引吗 不等于查询索引使用情况
  • 网站怎么做可以被收录/宁波seo推广平台
  • 自己做网站卖水果/windows优化大师怎么样
  • 莆田哪里有做网站的/郑州seo排名工具
  • 深圳市做网站的有那些公司/北京it培训机构哪家好
  • 网站平台建立/谷歌seo推广培训班
  • 莱芜金点子电子版报纸/seo的定义