力扣24题
题目描述:
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
**题解思路:**递归,确定递归三部曲的条件:
- 确定递归函数的参数和返回值:回交换后子链表的头节点;
- 确定递归的终止条件:temp是null或head是null
- 确定单层递归的逻辑:temp是head的下一个节点,head后接交换完成的子链表,temp接head;
java
class Solution {
public ListNode swapPairs(ListNode head) {
if(head==null || head.next==null){
return head;
}
ListNode temp=head.next;
// 执行递归逻辑
head.next=swapPairs(temp.next);
temp.next=head;
return temp;
}
}