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

server/2025/1/18 19:52:50/

1.题目解析

2.讲解算法原理 

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

3.编写代码

/*** 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;}
}


http://www.ppmy.cn/server/159437.html

相关文章

力扣动态规划-2【算法学习day.96】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关…

OpenAI推出首个AI Agent!日常事项自动化处理!

2025 年1月15日,OpenAI 正式宣布推出一项名为Tasks的测试版功能 。 该功能可以根据你的需求内容和时间实现自动化处理。比方说,你可以设置每天早晨 7 点获取天气预报,或定时提醒遛狗等日常事项。 看到这里,有没有一种熟悉的感觉&a…

【leetcode 16】1. 两数之和

原题链接 方法一&#xff1a;两层for循环方法 class Solution {public int[] twoSum(int[] nums, int target) {int lennums.length;int[] resnew int[2];for(int i0;i<len;i){for(int ji1;j<len;j){if(nums[i]nums[j]target){res[0]i;res[1]j;}}}return res;} }什么时候…

Lambda 架构之实时处理层的深度剖析:从原理到 Java 实战

一、背景知识 在当今的信息时代&#xff0c;数据的产生速度呈现爆炸式增长&#xff0c;并且越来越多的业务场景对数据处理的实时性提出了严格的要求。传统的数据处理架构往往侧重于批处理&#xff0c;对于实时数据的处理能力有限&#xff0c;难以满足诸如实时监控、即时推荐、…

MongoDB 学习指南:深入探索非关系型数据库

MongoDB学习资料 MongoDB学习资料 MongoDB学习资料 在当今数字化时代&#xff0c;数据量呈爆炸式增长&#xff0c;数据结构也变得愈发复杂多样。传统的关系型数据库在处理一些大规模、高并发以及非结构化数据时&#xff0c;逐渐显露出局限性。而 MongoDB 作为一款领先的非关系…

DATACOM-STP、RSTP、MSTP-复习-实验

STP、RSTP、MSTP 概述STP简介STP工作原理STP、RSTP、MSTP比较 配置实验 update 2025.1.16 后续更新概述 STP简介 STP&#xff08;Spanning Tree Protocol&#xff09;即生成树协议&#xff0c;原理是通过在交换机之间传递网桥协议数据单元&#xff08;BPDU&#xff09;&#xf…

Spark任务提交流程

当包含在application master中的spark-driver启动后&#xff0c;会与资源调度平台交互获取其他执行器资源&#xff0c;并通过反向注册通知对应的node节点启动执行容器。此外&#xff0c;还会根据程序的执行规划生成两个非常重要的东西&#xff0c;一个是根据spark任务执行计划生…

嵌入式入门Day42

C Day5 作业 作业 //main.cpp #include <iostream> #include "mystring.h"using namespace std;int main() {mystring stra("Hello");mystring strb;cin >> strb;cout << strb << endl;strb stra;cout << strb << e…