链表的建立与打印

前面复习了链表基础+leetcode的链表题

知道leetcode写法与实际编程之间的区别,因此为了弄清楚实际中应该怎么去写,特地亲自写了一遍关于链表的建立与打印。

首先 ,定义链表

考虑到实际我们可能不会自己定义构造函数,于是在此我就特地没有添加构造函数定义

其次,主函数

我们知道,无论是建立链表还是查找链表元素,都是从链表的头部开始。

所以,我们创建一个链表头LIstNode*head ,给链表分配一个内存空间 new ListNode。

注意:因为在定义链表时并没有构造函数,所以new ListNode不能有()或者(?)。

然后,我们分别给链表的数据域和指针域定义。

然后,来到创建链表函数

 因为用链表,一切从头开始,所以该函数要传递链表的头部元素,为了区分head,我们形参设置为 ListNode*pHead。

接着,我们需要创建一个新的链表指针,指向链表的头部,后面有用。

进入循环,我想创建十个链表结构,从0开始赋值,不出意外 应该是 0 1 2 3 4 5 6 7 8 9.

注意:这时,我们还需要重新创见一个链表结构,p只是一个指向头部的指针而已,现在还没有多余的链表来存储值。

                                         

因此,我们定义一个Newnode,给它分配空间,与头部初始化步骤相同。

注意:此时我们创建了一个存储了值为0的链表,如果没有下面两步骤

,我们得到的将会是这样

 看到什么?对!链表不是链表,因为没有连起来!

所以,p现在就能体现出作用来了,它就是用来链接各个结构的。

 

最后,我们打印链表 

由前面知道,p是用来连接链表结构的,Newnode是用来创建单一结构并赋值的。所以想要打印链表结构,我们必须还要创建一个访问指针,用来遍历每一个元素。

当然函数的形参还是从头部开始。

 循环的重点:q=q->next 更新q的位置

结果

好了 这个就是完整的链表创建和打印了。感觉还不错,链表不难,思路清晰就很好理解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值