- 博客(4)
- 收藏
- 关注
原创 c链表相交
这样短的链上的指针和长的链上的指针都距离交点/链表末尾同样长度,因为当原先长链上指针跳转到短链头时,原先短链上指针已经在长链上走了相差的步数,两个指针所指节点刚好距离交点/链表末端同样长度//a指针从a链表头开始,跳转到最后a指针跳到b链头继续跳, b指针从b链头开始,跳转到最后b指针跳转到a链头继续//当指针跳转到尾时下一次跳转到另一链头,n=2完成一次换头,n>3则说明又换了一次头//设置一个交换链计数,如果两条链表不相交时指针则会交换链超过一次//两个指针分别指向两个链头/
2023-12-10 21:58:58
342
1
原创 c删除链表的倒数第N个节点
如何通过循环使一个指针刚好指向倒数第n-1个节点时停下来?就像拿一把尺子比着,设置一个快指针初始时和操作指针之间隔了n个节点,然后快指针和操作指针同时前进,当快指针指向null时和操作指针隔了n个节点,即操作指针在倒数第n-1个节点//当fast指向null时快慢指针之间隔了n个节点,慢指针刚好指向倒数第n-1个节点//让fast跳转n次到正序第n+1个节点,此时快慢指针之间隔了n个节点//删除倒数第n个节点,需要将操作指针跳指向倒数第n-1个节点//当链表为空返回NULL//删除倒数第n个节点/
2023-12-10 21:33:24
374
1
原创 c两两交换链表中的节点
递归形式:后节点下一个指向改为前节点,前节点下一个指向为后一组的后节点,当下一组前节点为空或者下一组只有单个时直接返回下一组前节点中断递归//以返回后节点地址为递归,每一个组的后节点作为递归结果返回给外一层递归作为上一组前节点的下一个指向//两两之间交换形成一个组,组与组之间连接:前一个组的前节点下一个指向后一个组的后节点//一组内两个节点交换顺序有两步:前节点下一个指向下一组,后节点下一个指向前节点//递归,每一组的前节点下一个都变为下一组的后节点//当链表为空或只有一个节点直接返回头指针/
2023-12-09 21:20:53
441
原创 c反转链表
pre指向当前操作节点前一个,初始为null为反转后链表结尾;/需要三个指针,一个cur指向当前要操作的节点,一个pre指向当前节点前一个结点,一个fast保存当前节点后一个节点//完成反转:先让cur指向的节点下一个指向pre,再让pre指向的节点下一个指向cur,//指针前进:让pre指针跳到cur所指向节点,再让cur指针跳到fast所指向的节点//当cur指向null时,pre刚好指向链表最后一个节点//循环结束条件:cur指向节点为null//指针前进操作下一个节点//完成当前节点反转/
2023-12-09 20:32:20
369
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人