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

【数据结构】【链表代码】移除链表元素

  • 移除链表元素

  1. /*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/struct ListNode* removeElements(struct ListNode* head, int val) {  // 创建一个虚拟头节点,以处理头节点可能被删除的情况  struct ListNode *dummy = (struct ListNode*)malloc(sizeof(struct ListNode)); // 分配内存给 dummy 节点  if (dummy == NULL) {  return NULL; // 内存分配失败  }  dummy->val = 0;  dummy->next = head;  struct ListNode *pre = dummy;  struct ListNode *cur = head;  while (cur != NULL) {  if (cur->val == val) {  // 删除当前节点  pre->next = cur->next;  free(cur); // 释放当前节点的内存,因为不再需要这个节点  cur = pre->next; // 移动 cur 到下一个节点  } else {  // 如果不删除当前节点,则继续遍历  pre = cur;  cur = cur->next;  }  }  // 返回新的头节点(跳过虚拟头节点)  struct ListNode *new_head = dummy->next;  free(dummy); // 释放虚拟头节点的内存  return new_head;  
    }

http://www.lryc.cn/news/454362.html

相关文章:

  • 作文-杭州游记
  • 降压芯片TPS54821
  • YOLO v1详解解读
  • 【动态规划-最长公共子序列(LCS)】【hard】【科大讯飞笔试最后一题】力扣115. 不同的子序列
  • 深入理解 JavaScript 中的 void`运算符和 yield*表达式
  • 第四节——从深层剖析指针(让你不再害怕指针)
  • openpnp - 吸嘴校正失败的opencv参数分析
  • 【Python】Marmir 使用指南:Python 驱动的电子表格生成器
  • 深入理解 JavaScript 事件循环机制:单线程中的异步处理核心
  • Stream流的终结方法(二)——collect
  • 【C语言系统编程】【第一部分:操作系统知识】1.1.操作系统原理
  • 基于Java+VUE+echarts大数据智能道路交通信息统计分析管理系统
  • leetcode-42. 接雨水 单调栈
  • ThinkPHP和PHP的区别
  • clientWidth,offsetWidth,scrollHeight
  • SVN版本回退
  • IDEA关联Tomcat
  • MongoDB mongoose 的 save、insert 和 create 方法的比较
  • Maven安装使用
  • 微信第三方开放平台接入本地消息事件接口报错问题java.security.InvalidKeyException: Illegal key size
  • 如何只修改obsidian图片链接为markdown
  • AI不可尽信
  • [C++]使用纯opencv部署yolov11旋转框目标检测
  • Python入门--函数
  • winFrom界面无法打开
  • 【Linux】Ubuntu20.04上使用RabbitVCS的图形化SVN
  • DMA直接存储器存取
  • java计算机毕设课设—坦克大战游戏
  • Vue入门-指令学习-v-on
  • Maven的生命周期与依赖作用域介绍