5.5单链表应用和双向链表(上)

合并数组从后往前找大,,这个L 1  L2排着往后走,谁小放下来,剩的也放下来

如果改变指针指向太麻烦前后都要改,所以采用这个思路

建立一个新链表newhead newptail指向头尾 初始都指向NULL,第一个节点尾插过来即为头也为尾,然后往newtail 的next指针尾插,newtail往下走。。。。

newtail是空不能解引用所以报错,两个连边可能都是NULL,也可能一个

list1是NULL,返回list2 lst2是  返回list1每次都要判断头节点为不为空就不用判断为不为NULL

就不能直接把NEW head返回,会在链表头部产生一个随机的值

但是malloc需要释放为什么没报错,牛客网远程程序运行完会自动释放,我们要养成释放习惯约瑟夫问题可以用数组,数组里没小于0的数字,报到数的置0,找到最后一个数据时,从数组下表0位置继续报数,杀完之后,继续遍历一次数组看看谁不为0,就是返回编号

另一个思路:环形链表pcur首节点prev前一个,pcur数1,下一个数2,pcur走到2,prev也要继续往前走保存pcur的前一个结点 现在2要销毁 prev就指向pcur下一个节点然后释放pcur就可以继续叔叔,让pcur走向prev的next位置,然后数1,3数1,4数2,3指向5再删4释放掉....继续,最后3节点指向自己

prev走向pcur,pcur往下走,报2 prev就指向pcur下一个节点然后释放pcur然后pcur指向prev指向的节点数1,prev=pcur,然后pcur继续走,pcur数2释放.........

剩的节点就是要返回的节点

if  exit 1可写可不写一般不会失败

phead数1,我必须知道他的前驱节点,因为下一个数二要让这个前驱节点指向 后一个节点如果返回phead不知道前一个结点,返回patail

pcur指向第一个节点那么count为1报数1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值