赞
踩
Hello大家好,今天我想和大家分享一下在链表当中实现相邻节点两两交换。
比如现在我们有一个链表,它的内容是:
a = [1,2,3,4]
那么我们现在所知道的就是这个链表的头节点是1,head.next保存的是2,以此类推。
我们可以新构造一个链表,然后使用递归的方式,完成这道题。
比如我们现在将2,也就是head.next的值作为新链表的头节点newhead,然后将头节点的值1作为新链表头节点的下一位,我们就完成了在新链表实现1,2的转换。这个时候我们就只用不断地使用递归的方式,将原链表的头节点head移到3对应的位置,再通过调用自己的方式进行交换拼接到新链表上,这样的步骤不断进行重复,我们就可以得到新的内容了。
逻辑为:
- newhead = head.next
- head.next = self.swapPais(newhead.next)
- newhead.next = head
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。