单链表经典OJ题

目录

​编辑

题目:

一、移除链表元素:

本质:

解题思路:

本题分为两种解法:

我们使用解法二:

注意事项:

完整代码:


题目:

一、移除链表元素:

本质:

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

解题思路:

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

我们使用解法二:

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

注意事项:

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

完整代码:

  • head是旧指针的火车头内部指向的第一个节点位置
  • val是节点存储的数据
  • 最后需要将新链表的最后指向置空
  • newHead头指针 newTail 尾指针
相关推荐
chengpei14729 分钟前
I²C协议简介
c语言·开发语言
CoderYanger2 小时前
C.滑动窗口-越短越合法/求最长/最大——2958. 最多 K 个重复元素的最长子数组
java·数据结构·算法·leetcode·哈希算法·1024程序员节
不会c嘎嘎3 小时前
【数据结构】AVL树详解:从原理到C++实现
数据结构·c++
say_fall3 小时前
C语言编程实战:每日一题:随机链表的复制
c语言·开发语言·链表
却话巴山夜雨时i3 小时前
394. 字符串解码【中等】
java·数据结构·算法·leetcode
惊鸿.Jh3 小时前
503. 下一个更大元素 II
数据结构·算法·leetcode
唐·柯里昂7983 小时前
野火鲁班猫5使用正点原子 RTL8188EUS Wifi模块驱动移植(Linux5.10 Debian系统) 解决zsh报错
linux·c语言·mcu·物联网·ubuntu·硬件工程·软件构建
客梦3 小时前
数据结构-栈与队列
数据结构·笔记
TL滕3 小时前
从0开始学算法——第四天(题目参考答案)
数据结构·笔记·python·学习·算法
Liangwei Lin4 小时前
洛谷 P1443 马的遍历
数据结构·算法