链表之头指针、头结点、首元结点、空链表

article/2025/8/20 11:15:27

链表之头指针、头结点、首元结点、空链表

文章目录

  • 链表之头指针、头结点、首元结点、空链表
    • 前言
    • 疑问整理
    • 头指针,头结点,首元结点定义
      • 首元结点定义
      • 头指针定义
      • 头结点定义
    • 疑问回答

前言

最近在用力扣刷链表的题,总是写不出来,对这几个概念模模糊糊,非常恼火,为了斩草除根以绝后患,特此整理。也希望帮助到有同样苦恼的小伙伴,看到这篇帖子你就可以彻底解决烦恼啦,不用害怕,打败链表,继续前进!!!

疑问整理

你在学习链表时是否会有下面的疑问?

  1. 头指针到底是指向头结点还是指向首元结点?
  2. 头结点里的指针域到底放着头指针还是放着首元结点的指针啊,还是放着别的什么?
  3. 头结点什么时候有什么时候没有啊?怎么感觉似有似无的?
  4. 空链表有头结点吗?

······

万恶的头指针!万恶的头结点!

——头指针,头结点os:我好无辜啊,我是为你好而存在的呀┭┮﹏┭┮

头指针,头结点,首元结点定义

以下定义来自《大话数据结构》之本人再加工,如有误,请及时指正,不能误人子弟

首元结点定义

第一个元素的那个结点。就是data有值时候的那个第一个结点。

有链表不一定有首元结点,假设链表为空链表,就没有;非空链表就肯定有首元结点的哈。

头指针定义

指向链表第一个结点的指针。

有链表一定会有头指针。

请注意,这里没强调是首元结点,还是头结点,就强调第一个结点!我头指针只记得住第一名!

下面是几种情况,可供参考。

在这里插入图片描述

为什么要有一个头指针呢?

我们知道,单链表的特性就是记性不好,只记得下一个结点在哪。可是谁又能记住这个链表在哪儿呢,想用这个链表的时候我都不知道怎么找到它,更别提用它的结点了。OK,这事现在就包在头指针这里了。找这个链表——找它的头指针,头指针存着位置呢!

头结点定义

首元结点前的那个结点。

有链表不一定有头结点。想在第一个首元结点前插入或者删除新结点方便,就建议有头结点。

下面两幅图分别对空链表和非空链表做具体阐释。

在这里插入图片描述
在这里插入图片描述

疑问回答

  1. 头指针到底是指向头结点还是指向首元结点?

答:不一定。有头结点就是头指针就是指向头结点,没有头结点就是指向首元结点。

  1. 头结点里的指针域到底放着头指针还是放着首元结点的指针啊,还是放着别的什么?

答:头结点的指针域放着首元结点的指针。

  1. 头结点什么时候有什么时候没有啊?怎么感觉似有似无的?

答:头结点是为了方便对首元结点前做插入删除操作的。为了方便,大多数情况下都有。

  1. 空链表有头结点吗?

答:不一定。

后续补充代码。
Loading…


http://chatgpt.dhexx.cn/article/fpQBRoh1.shtml

相关文章

求二叉树指定结点到根结点的路径c++ 非常详细。

看了很多 没有看见完整的代码 我喜欢喂饭喂到嘴边。 部分代码参考16 二叉树:以x为根的子树的深度_DHU杨骅麟(紫外线过敏)的博客-CSDN博客 面试经典(16)--二叉树根节点到指定节点的路径_nginux的博客-CSDN博客_二叉树根节点到目标节点路径 运…

二叉树的结点数

二叉树的结点数(*) (10分) 已知二叉树的结点结构定义如下: typedef struct _NODE_ {char data;struct _NODE_ *lch, *rch; } NODE; 说明:data 为数据域,均为英文大写字母。lch 和 rch 分别为指示左、右孩子的指针。 请编写函数,求二叉树的结点个数。 函数原型 // 结点…

求一个结点x在在二叉树中的双亲结点算法

1、算法思想 使用先序递归遍历思想完成算法设计。首先判断节点的左右孩子是否存在,若存在,并且左右孩子中有一个符合查找要求,则返回元素!否则,继续递归查找,直到成功或者找不到符合要求的结点&#xff01…

计算二叉树中结点的个数

思想: 递归实现 图示为举例二叉树进行思路解释 二叉树中结点的个数:只要能计算出A左子树的个数A右子树的个数1 左子树个数:以B为结点的左子树个数右子树个数1 右子树个数:以C为结点的左子树个数右子树个数1 . . . .&#xff0…

(图解)单链表删除结点值为x的结点算法

目录 一、非递归的算法 第一种算法思路如下: 第二种算法思路如下: 二、递归的算法 一、非递归的算法 第一种算法思路如下: 先判断链表L是否为空,空链表退出程序;用p利用while循环从头到尾扫描单链表,p…

单链表的基本操作-插入结点、删除结点、新建链表、查找结点位置

** C语言新手小白的学习笔记-------------目前持续更新中 ** 本人90后电气工程及其自动化大学生,大二开始接触C语言,写过前端,Python,但是都不精通,通过许多认识后明白了自身的许多不足,因此,…

武汉轰趴团建年会的疯狂玩法活动不一样的经历

又是一年的历程与工作,今年来一点新花样,来吧,让我们一起快乐冲向前,空气中满是不一样的欢声笑语,让我们一起感受不一样的年会趴,让我们一起去快乐的游玩吧。武汉轰趴团建年会的疯狂玩法活动不一样的经历 感…

天猫双11全球狂欢节的诞生,源于对快乐的分享

时光荏苒,天猫双11全球狂欢节,如今已经迈入了第十个年头。 相信有不少读者小伙伴都知道,双11最早其实源于中国的“光棍节”。那么这样一个原本应该是单身狗们黯然神伤的日子,究竟是如何演变成一场让无数消费者和商家都激情澎湃的购…

生成模型太强大?篡改与伪造检测越来越需要了!这篇最新综述不容错过

关注公众号,发现CV技术之美 最近一段时间,以扩散模型为代表的生成模型越来越能逼真地生成图像和视频,一方面是一群人的狂欢,这是AI的进步,另一方面却是另一群人的担忧,这是AI的危险。 AI技术可以造福人类&a…

你越来越孤独的3个原因

昨天看到一句话是这样说的:“交朋友都很难了,还交男朋友。” 我觉得有趣的同时,又发现好像真的是这样,身边好像很久没有出现过新的人了,也很少愿意去参加各种各样的聚会,也没有精力再去认识一些陌生人。 …

超1.58亿人将“血拼”,超级星期六购物节即将到来

超1.58亿人将“血拼”!美国超级星期六购物节即将到来!亚马逊出手整治“远仓近送”! 据美国零售联合会的年度消费者调查结果显示,在今年圣诞节前的最后一个星期六(即超级星期六),将有1.58亿人发生…

复旦女神陈果:孤独是一个人的狂欢,在你寂寞时请关注这些公众号充实自己

复旦大学哲学系博士陈果,对孤独做出了一种完美的诠释。她说:“狂欢是一群人的寂寞,孤独是一个人的狂欢。孤独不求外物,反求诸己。” 在你寂寞之时,请关注这些公众号。他们能给你提供有生命力的阅读,让你在有…

1024 程序员节狂欢盛会,等了一年终于来了!

风起岳麓,扶摇而上,约战湘江,谁与争锋!以“算力新时代开源创未来”为主题的第三届 2022 长沙中国 1024 程序员节于 10 月 22 日-24 日强势来袭!数位院士领衔、中国根技术掌门人以及海外先进开源技术掌门人齐聚&#xf…

夜夜狂欢的派对

奇怪,外国人的语气或思维总因为隔膜的缘故觉得很幽默,是那种“自己不笑却让所有人笑”的幽默。比如早上抛公发给我看的帖子中的几段: “北京有个夜夜狂欢的派对,一定很多人都去参加。因为在北京很多人每天看上去都很疲倦。我不知…

一群搞社区的人

最近Mixlab无界社区参与的电台节目有点多,上次是城市花样精,这次是#社区特辑。推荐给大家: opus 号外号外!好公社“嗲声嗲气”播客和CSDC服务设计社区“月月谈”电台合作啦! 什么?听起来这个合作来得太突然…

一群人的战斗

一、Bug 来了 一个平静的周日午后,正悠闲地在公园里遛娃。突然来了一条消息,打开企业微信仔细看了下,竟大吃一惊:客户成功在群内反馈了 Android A/B Testing SDK 的一个 crash,需要紧急解决。 得知问题后我立刻和客…

一个“后浪”的狂欢,一群中年人的孤单!

点击“技术领导力”关注∆ 每天早上8:30推送 作者| Mr.K 编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) “孤单,是一个人的狂欢,狂欢,是一群人的孤单。” 《叶子》,阿桑,词/曲:陈晓娟 01 …

计算机术语hook的理解

Hooks就像一些外来的钩子,在源代码之间钩取(窃听)一些信息,当它捕捉到自己感兴趣的事发生,就拦截下来,让自己的代码执行一下,处理一下这个信息,然后再放出去继续之前的进程。这样就可…