【专题一 递归】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;
        
    }
}
相关推荐
MORE_7713 分钟前
leecode-合并区间-贪心算法
算法·贪心算法
2401_8732046527 分钟前
分布式系统安全通信
开发语言·c++·算法
sw1213892 小时前
C++中的代理模式实战
开发语言·c++·算法
ballball~~2 小时前
ISP-CCM(Color Correction Matrix)
图像处理·数码相机·算法
Sunshine for you3 小时前
实时操作系统中的C++
开发语言·c++·算法
中科院提名者3 小时前
BPE 算法的硬核拆解——理解词表(Vocabulary)是如何从零训练出来的,以及字符串是如何被切碎的
算法
「QT(C++)开发工程师」3 小时前
C++11三大核心特性深度解析:类型特征、时间库与原子操作
java·c++·算法
乐分启航3 小时前
SliMamba:十余K参数量刷新SOTA!高光谱分类的“降维打击“来了
java·人工智能·深度学习·算法·机器学习·分类·数据挖掘
你真是饿了5 小时前
算法专题二:滑动窗口
算法
ccLianLian5 小时前
数论·约数
数据结构·算法