单链表经典OJ题

目录

​编辑

题目:

一、移除链表元素:

本质:

解题思路:

本题分为两种解法:

我们使用解法二:

注意事项:

完整代码:


题目:

一、移除链表元素:

本质:

移除元素就是先找到该元素所在的位置,然后将该元素所在节点的指向下一个节点赋给该元素所在的节点位置的前一个节点。

解题思路:

本题分为两种解法:
  • ++解法一是直接在原链表上进行删除++
  • ++解法二是设立一个新的链表,然后通过查找的方式对链表进行遍历,然后如果是不需要删除的节点,那么我们将其进行尾插 ,尾插到我们创建的新链表上++

我们使用解法二:

  1. 创立两个指针,分别是头指针和尾指针
  2. 头指针是为了最后方便打印所以保持不变,尾指针是进行尾插的操作。
  3. 然后让原链表开始遍历,不是要删除的节点,进行尾插,插入新的链表中
  4. 这个插入新链表也就是将原链表节点内部的指向改成新链表的

注意事项:

注意当第一个节点到新链表后,头指针和尾指针是同时指向第一个节点的,但是之后就只有尾节点开始移动 。

完整代码:

  • head是旧指针的火车头内部指向的第一个节点位置
  • val是节点存储的数据
  • 最后需要将新链表的最后指向置空
  • newHead头指针 newTail 尾指针
相关推荐
wuminyu10 小时前
JDK21中虚拟线程和FFM协同实现高并发源码剖析
java·linux·c语言·jvm·c++
hold?fish:palm11 小时前
30 两两交换链表中的节点
数据结构·算法·链表
kkkkkkkkkk_Z12 小时前
学嵌入式和C语言编程数据结构|学习日记Day21:内核链表与队列学习
c语言·数据结构·学习
不正经学生12 小时前
C语言结构体:自定义数据类型,让变量打包出行
java·c语言·开发语言·数据结构·算法
老一岁12 小时前
c问题总结(1)
c语言·开发语言
一木 之林12 小时前
三、内存管理、指针与堆栈
c语言·jvm·c++
笨笨饿13 小时前
#110_SCH3000 平台图传系统配置指南:从 DVP 摄像头到 UVC/WiFi 双通道传输
c语言·stm32·单片机·嵌入式硬件·物联网·vim
程与留13 小时前
06_Qt 常用数据类型与容器:QString、QList、QVector、QMap 的性能与实现分析
数据结构·qt
林森lsjs13 小时前
队列 FIFO 原理 & 手撕两种队列实现(链表 + 循环数组)—数据结构陆
java·开发语言·数据结构·队列
caimouse13 小时前
ReactOS 窗口系统分析(20):光标与图标 — cursoricon.c
c语言·开发语言