描述
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
例子
思路
- 递归:判断是否结点为空,或只剩一个结点,否则,首先保存second,不保存就找不到了,按如果操作,最后,返回second
- 迭代
答案 - python
//递归 简单快速
class Solution {
public ListNode swapPairs(ListNode head) {
if(head==null || head.next==null) return head;
//有两个结点及以上
ListNode second = head.next;
head.next = swapPairs(second.next);
second.next = head;
return second;
}
}
//迭代
class Solution {
public ListNode swapPairs(ListNode head) {
if(head==null || head.next==null) return head;
//cur为结果链表的最后一个结点
ListNode h = new ListNode(-1),cur=h;
h.next = head;