【专题一 递归】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;
        
    }
}
相关推荐
の梦9 分钟前
力扣54题——螺旋矩阵
数据结构·算法·leetcode·职场和发展·矩阵·蓝桥杯
伊一大数据&人工智能学习日志2 小时前
机器学习经典无监督算法——聚类K-Means算法
人工智能·算法·机器学习
✿ ༺ ོIT技术༻2 小时前
剑指offer第2版:树系列(一)
数据结构·算法·leetcode·剑指offer
三月七(爱看动漫的程序员)3 小时前
LARGE LANGUAGE MODELS ARE HUMAN-LEVEL PROMPT ENGINEERS
大数据·人工智能·算法·语言模型·自然语言处理·prompt
羑悻的小杀马特3 小时前
【狂热算法篇】探秘图论之 Floyd 算法:解锁最短路径的神秘密码(通俗易懂版)
c++·算法·图论·floyd算法
吕小明么3 小时前
腾讯AI Lab与上交大探索模型“过度”思考
人工智能·神经网络·算法·aigc·agi
smj2302_796826524 小时前
解决leetcode第3418题机器人可以获得的最大金币数
python·算法·leetcode
KeyPan4 小时前
【机器学习:三十三(二)、支持向量机(SVM)的核函数:概念、类型与应用】
人工智能·神经网络·算法·机器学习·支持向量机·数据挖掘
dundunmm4 小时前
【论文阅读】End-to-End Adversarial-Attention Network for Multi-Modal Clustering
论文阅读·算法·数据挖掘·聚类·对抗学习·核映射·多视图聚类