这种题有时候会把自己整懵而写成一个死循环
看到这道题的第一感觉就是用递归来做,就是我就交换前两个,然后后面的假如都交换好了以后,将他们都连上就是答案了。前两个节点为fir,sec,两两交换节点的话fir.next = sec.next sec.next = fir,这样就做到了交换两个节点,但是我要让交换后的第二个节点能和后面的都接上,那这里我就把没交换之前的sec.next作为参数再传给该函数,它就会将后面的都交换完然后返回完成后的链表,这个时候第一个节点再与它接上就是答案了
递归的边界条件就是节点为nil或者节点.next为nil时返回该节点,其中判断节点.next == nil主要是为了避免只有一个节点的情况,代码如下: