【专题一 递归】24. 两两交换链表中的节点

1.题目解析

2.讲解算法原理

  • 让前两个节点后面的链表先逆置,并且把头结点返回
  • 把当前两个结点进行交换,并且找到新的头结点
  • 把后面链表直接添加到当前已经逆置的两个节点后面

3.编写代码

java 复制代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode swapPairs(ListNode head) {
        ListNode newHead=dfs(head);
        return newHead;
    }
    public ListNode dfs(ListNode head){
        if(head==null||head.next==null){
            return head;
        }
        ListNode newHead=dfs(head.next.next);
        ListNode ret=head.next;
        ret.next=head;
        head.next=newHead;
        return ret;
        
    }
}
相关推荐
洛水水11 小时前
【力扣100题】28. 翻转二叉树
算法·leetcode
故事和你9111 小时前
洛谷-【数据结构2-2】线段树2
开发语言·数据结构·算法·动态规划·图论
ghie909011 小时前
MATLAB 随机蛙跳算法 (SFLA) 优化最小二乘回归
算法·matlab·回归
wuweijianlove11 小时前
算法优化中的缓存层次结构与内存映射的技术7
算法
故事和你9111 小时前
洛谷-【数据结构2-2】线段树1
开发语言·javascript·数据结构·算法·动态规划·图论
电科一班林耿超11 小时前
机器学习大师课 第 8 课:端到端项目实战 —— 泰坦尼克号生存预测
人工智能·算法·机器学习
ComputerInBook11 小时前
数字图像处理(4版)——第 12 章——图像模式分类(上)(Rafael C.Gonzalez&Richard E. Woods)
图像处理·人工智能·算法·模式识别·图像模式分类
y = xⁿ11 小时前
20天速通LeetCodeday13:DFS深度优先搜素
算法·深度优先
七牛开发者11 小时前
开源项目观察|ds4:本地 Agent 推理,不只是把模型跑起来
人工智能·redis·算法·开源
影sir11 小时前
OI Wiki--算法竞赛百科
经验分享·算法