【专题一 递归】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;
        
    }
}
相关推荐
dazzle1 分钟前
机器学习算法原理与实践-入门(十):基于PaddlePaddle框架的线性回归
算法·机器学习·paddlepaddle
2501_940315263 分钟前
【无标题】1.用哈希表做两数之和
算法·哈希算法·散列表
计算机安禾15 分钟前
【数据结构与算法】第20篇:二叉树的链式存储与四种遍历(前序、中序、后序、层序)
c语言·开发语言·数据结构·c++·学习·算法·visual studio
菜菜的顾清寒28 分钟前
力扣HOT100(16)除了自身以外数组的乘积
算法·leetcode·职场和发展
sali-tec28 分钟前
C# 基于OpenCv的视觉工作流-章45-圆卡尺
图像处理·人工智能·opencv·算法·计算机视觉
会编程的土豆40 分钟前
【数据结构与算法】二叉树遍历 集合
数据结构·算法
老虎062740 分钟前
LeetCode热题100 刷题笔记(第六天)双指针 「 盛最多水的容器」
笔记·算法·leetcode
ZPC821041 分钟前
fanuc 机器人 pr 寄存器数据如何绑定 GO 绑定DO
人工智能·算法·机器人
LUVK_1 小时前
第六章 图
数据结构·考研·算法·深度优先·图论·408
Frostnova丶1 小时前
LeetCode 735 & 2751.栈模拟碰撞问题详解
算法·leetcode