LeetCode-25 -两两交换链表中的节点

力扣24题

题目描述:

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

**题解思路:**递归,确定递归三部曲的条件:

  1. 确定递归函数的参数和返回值:回交换后子链表的头节点;
  2. 确定递归的终止条件:temp是null或head是null
  3. 确定单层递归的逻辑: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;
    }
}
相关推荐
I_LPL6 小时前
hot100贪心专题
数据结构·算法·leetcode·贪心
颜酱6 小时前
DFS 岛屿系列题全解析
javascript·后端·算法
WolfGang0073217 小时前
代码随想录算法训练营 Day16 | 二叉树 part06
算法
2401_831824968 小时前
代码性能剖析工具
开发语言·c++·算法
Sunshine for you9 小时前
C++中的职责链模式实战
开发语言·c++·算法
qq_416018729 小时前
C++中的状态模式
开发语言·c++·算法
2401_884563249 小时前
模板代码生成工具
开发语言·c++·算法
2401_831920749 小时前
C++代码国际化支持
开发语言·c++·算法
m0_672703319 小时前
上机练习第51天
数据结构·c++·算法
ArturiaZ10 小时前
【day60】
算法·深度优先·图论