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 @ 2022-03-11 21:26  余ོ笙ꦿ℘゜এ  阅读(613)  评论(0)    收藏  举报
Live2D