单链表各个节点的关系,单链表的中间节点

首页 > 经验 > 作者:YD1662022-11-04 00:27:00

这两种链表在插入第一个结点时情况稍有不同:假设头结点已经申请好,此时要插入第一个结点NewNode

head=NewNode//不带头结点 head->next=NewNode//带头结点

可以发现,带头结点链表虽然浪费了一个空间,但是它把许多操作都归一化了,使得第一个结点不那么特殊,也就是不需要特殊处理
但是oj题给你永远都是不带头结点的链表。

②:初始化

初始化时,按需索取,开始只有一个头结点

单链表各个节点的关系,单链表的中间节点(5)

B:打印C:单链表尾插①:如何尾插?

顺序表由于可以随机访问,所以把数组传过去,然后直接找到末尾元素即可。那么对于链表就有点不同了,我能传过去的只是第一个结点,由第一个结点可以知道第二个结点,由第二个结点可以知道第三个几点····依次类推。所以我要尾插时**,就必须找到尾结点**,那么怎么就知道它是尾节点呢?其实也很容易,尾节点它是最后一个结点,那么它的next肯定为NULL,所以我只需将第一个结点传过去,然后创建一个循环指针(一定要创建一个循环指针,不能直接拿上第一个节点的指针循环,这样头指针变了,整个链表丢了),从第一个结点的位置开始循环访问,直到你所指向的这个结点的next分量为NULL时,这个结点就是尾结点。

②:尾插代码第一种

根据以上的分析,我们似乎可以写出下面的代码

单链表各个节点的关系,单链表的中间节点(6)


但是运行之后,却什么都没有

单链表各个节点的关系,单链表的中间节点(7)


这是为什么呢?我们通过调试可以一探究竟

单链表各个节点的关系,单链表的中间节点(8)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.