24.两两交换链表中的节点

这种题有时候会把自己整懵而写成一个死循环

看到这道题的第一感觉就是用递归来做,就是我就交换前两个,然后后面的假如都交换好了以后,将他们都连上就是答案了。前两个节点为fir,sec,两两交换节点的话fir.next = sec.next     sec.next = fir,这样就做到了交换两个节点,但是我要让交换后的第二个节点能和后面的都接上,那这里我就把没交换之前的sec.next作为参数再传给该函数,它就会将后面的都交换完然后返回完成后的链表,这个时候第一个节点再与它接上就是答案了

递归的边界条件就是节点为nil或者节点.next为nil时返回该节点,其中判断节点.next == nil主要是为了避免只有一个节点的情况,代码如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值