3.3单链表专题

顺序表这种在标准库已经实现好了,直接调用 pushback pushfront 这些

o(1)表示不额外开辟空间

src为value继续走,下一个不是value,src值给dst空间,dst++,dst刚好等于2,就是新数组长度。

若从前向后两个数组元素依次比大小  小的放在num1前面,这样num1元素会被覆盖,这种方法行不通,所以从后往前,L1和L2比大小,谁大放L3,L2--,L3--,L2<0了就停止。

另一种情况:

出了循环也没排好序,就把num2剩下数据依次放入num1.

大于等于0.

L1 L2不会同时小于零,L2小于0不需要处理所以只需处理一种情况

移动N个数据那么空间复杂度就是N

链表和火车非常像

数组里不能说删除一个空间剩下的都不删,没这种说法,火车中可以把A车厢拿掉,就可以让X 和D连接在一起

链表节点看成车厢,每个节点都可以独立申请,就可以解决顺序表中增容造成空间浪费问题

NOde :节点

多创建一个指针,后期就不会更改原指针

链表前面的节点也是通过一次一次插入,所以最初是情况下我们有个链表但是链表是空链表,头指针就是空,phead是NULL,不能解引用,代码会报错

让phead不指向NULL,指向新节点,此时链表就变成了只有一个结点的链表

形参变了实参没变说明我这里传的是值,需要传地址

不能说传指针就是传地址

pphead不能是NULL这样不能解引用*pphead可以是NULL(第一个节点地址是空,是空链表)所以要断言

将*pphead指针指向newnode就是新的头

若链表为空也行

尾删也要用二级指针,前面插入的新节点可能是头节点,影响到PPhead,头节点删了pphead就成空了,也会影响到我的实参所以用二级指针

释放掉ptail还要让前一个指向的变NULL不然是野指针

prtail和prev都释放掉之后,就不能让prev的NEXT指针指向NULL

如果当前链表只有一个节点,那我就直接把这个节点释放掉,不需要找尾节点以及我们的前驱节点 

再尾删就报错为假说明链表为空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值