数值与后继节点交换
设有一个由正整数组成的无序单链表,编写完成下列功能的算法
- 找出最小值节点,打印改值
- 若该数值是奇数,将其与直接后继节点的数值交换
- 若该数值是偶数,将其直接后继节点删除
算法思想
遍历整个链表查找最小值节点,从第一个节点开始找
判断数据域的值是否是奇数,若是,与后继节点的值交换
若是偶数,删除后继节点
![![[Pasted image 20241112190102.png]]](https://i-blog.csdnimg.cn/direct/9c01c1763e0b4f328bd27f3dfbaff0b0.png)
cur和MIn指针都指向L的next
cur开始遍历,如果cur的next也就是待比较的节点比Min小,将Min指向cur的next
![![[Pasted image 20241112190154.png]]](https://i-blog.csdnimg.cn/direct/6e45284dc7ab403784fcf82afde64b92.png)
直到cur的next为NULL结束
如果Min的data是奇数,如果后继节点不为NULL,与后继节点交换数值
如果Min的data是偶数,如果后继节点不为NULL,
创建指针del指向Min的next
![![[Pasted image 20241112190548.png]]](https://i-blog.csdnimg.cn/direct/0f41325b0c6644d591d2288c32faee4f.png)
将Min的next指向del的next,这里是NULL
单链表节点交换算法详解

最低0.47元/天 解锁文章
563

被折叠的 条评论
为什么被折叠?



