Fork me on GitHub

关于Java单向链表头结点与头指针傻傻分不清

在初学数据结构单链表的时候,对于链表的的头指针和头结点之间的区别和联系不是很清楚,后来查阅了一些资料,根据自己的理解大概整理了一下这两者之间的关系,主要就是下面这几点:
1. 头指针表明了链表的起点,可以唯一确定一个单链表。
2. 头指针指向链表的第一个结点,其指针域存储的是第一个结点在内存中的位置。
3. 头结点是单链表的第一个结点,若单链表有头结点,则头指针指向头结点;若单链表不含头结点,则头指针指向第一个结点。

4. 一个单链表可以没有头结点,但不能没有头指针。

5、头结点一般不存放数据,故当不存在头结点时,不严格意义情况下可以将头指针视为头结点【不严格意义】,此时便与有头结点的单向链表保持一致了呢!

(所以后续刷题遇到的head跟first都是头指针,视具体情况确定是否将其视为头结点)真正存储有意义数据的为第一个结点,而不是头结点【严格概念层面上讲】

 6、无头结点时,头指针head/first亦可以视为头结点【不严格意义上,其本质一样,因为无头结点,头指针便会指向第一个结点,

而头结点本身不存储数据仅存储指向下一结点【第一个结点】的指针或者说是存储指向下一节点的内存地址 】

 

如图:
不带头结点的单链表

 

 

 带头结点的单链表

 

 

 

 

 

 

 

原文链接:https://blog.csdn.net/qq_35514178/article/details/102636001

posted @   余ོ笙ꦿ℘゜এ  阅读(562)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
Live2D
欢迎阅读『关于Java单向链表头结点与头指针傻傻分不清』
点击右上角即可分享
微信分享提示