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

【算法】代码随想录之链表(更新中)

文章目录

前言

一、移除链表元素(LeetCode--203)


前言

跟随代码随想录,学习链表相关的算法题目,记录学习过程中的tips。


一、移除链表元素(LeetCode--203)

【1】题目描述:

【2】解决思想:在当前节点判定下一个节点的val是否是目标值,若是则修改当前节点的next指针为下一个节点的next地址。为了使操作更加一致,创建一个头节点辅助操作。

【3】C++代码:

/*** 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:ListNode* removeElements(ListNode* head, int val) {struct ListNode* headNode = new ListNode(0, head);struct ListNode* pNode = headNode;while (pNode->next) {if (pNode->next->val == val) {auto tmp = pNode->next;pNode->next = pNode->next->next;delete tmp;} else {pNode = pNode->next;}}auto tmp = headNode->next;delete headNode;return tmp;}
};

【4】时间复杂度:O(N),只遍历了一遍链表。

【5】空间复杂度:O(1),只是开辟了一个头节点而已。


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

相关文章:

  • react 18中,使用useRef 获取其他组件的dom并操作节点,flushSync强制同步更新useState
  • Jupyter Notebook基础:用IPython实现动态编程
  • Python 爬虫:使用打码平台来识别各种验证码:
  • 理解算法复杂度:空间复杂度详解
  • 浅析Kafka Streams消息流式处理流程及原理
  • QGroundControl的总体架构,模块化设计和主要组件的功能。
  • oracle 表空间文件迁移
  • JVM学习(day1)
  • js项目生产环境中移除 console
  • ROS2 + 科大讯飞 初步实现机器人语音控制
  • HTML5新增的input元素属性:placeholder、required、autofocus、min、max等
  • Cornerstone3D导致浏览器崩溃的踩坑记录
  • 【鸿蒙学习笔记】Stage模型
  • Docker进入MongoDB
  • APP与API:魔法世界的咒语与念咒者
  • 云计算安全需求分析与安全保护工程
  • 七天.NET 8操作SQLite入门到实战 - 第二天 在 Windows 上配置 SQLite环境
  • 操作系统——进程的状态与转换
  • 80. UE5 RPG 实现UI显示技能冷却进度功能
  • Vue2-集成路由Vue Router介绍与使用
  • TemuAPI接口:获取商品详情功能
  • deepstream读取mp4文件及不同类型视频输入bug解决
  • Redis服务器统计和配置信息简介
  • Linux Mac 安装Higress 平替 Spring Cloud Gateway
  • 基于重叠群稀疏的总变分信号降噪及在旋转机械故障诊断中的应用(MATLAB)
  • 【YOLOv8】 用YOLOv8实现数字式工业仪表智能读数(一)
  • 微信小程序---npm 支持
  • 02MFC画笔/画刷/画椭圆/圆/(延时)文字
  • JavaWeb(四:Ajax与Json)
  • Spring源码中的模板方法模式