当前位置: 首页 > news >正文

24. 两两交换链表中的节点

知乎ID: 码蹄疾 
码蹄疾,毕业于哈尔滨工业大学。 
小米广告第三代广告引擎的设计者、开发者; 
负责小米应用商店、日历、开屏广告业务线研发;
主导小米广告引擎多个模块重构; 
关注推荐、搜索、广告领域相关知识;

题目

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

示例:

给定 1->2->3->4, 你应该返回 2->1->4->3.
说明:

你的算法只能使用常数的额外空间。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

分析

两两合并节点,头结点的两个节点合并后,剩下的又可以转化为两两合并的子问题,所以递归求解即可。

code

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode swapPairs(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }

        ListNode left = head;
        ListNode right = head.next;
        left.next = swapPairs(right.next);
        right.next = left;
        return right;
    }
}

 

  微信扫码关注公众号,获得第一手新鲜资料!

转载于:https://www.cnblogs.com/acceml/p/9313243.html

相关文章:

  • 如何使Python完美升级到新版本
  • 子集
  • 源码编译安装LNMP环境及配置基于域名访问的多虚拟主机
  • Linux各目录及每个目录的详细介绍
  • 90分 蓝桥杯 算法提高 道路和航路 [ 最短路 ]
  • linux一次卸载多个软件
  • 《大话数据结构》读书笔记(一)
  • Tyvj3632|超级英雄Hero
  • 如何从mysql数据库中取到随机的记录
  • soapUI使用-DataSource获取oracle库中的参数
  • POJ - 1584 A Round Peg in a Ground Hole(判断凸多边形,点到线段距离,点在多边形内)...
  • 生产服务器环境最小化安装后 Centos 6.5优化配置备忘
  • 基于阿里云数加构建企业级数据分析平台
  • 关于 来源: volmgr Event ID: 46 故障转储初始化未成功 的问题
  • 深入理解计算机操作系统(十)
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 08.Android之View事件问题
  • express + mock 让前后台并行开发
  • Github访问慢解决办法
  • JavaScript新鲜事·第5期
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Linux gpio口使用方法
  • python学习笔记 - ThreadLocal
  • Webpack入门之遇到的那些坑,系列示例Demo
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 基于webpack 的 vue 多页架构
  • 排序算法学习笔记
  • 数组大概知多少
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 最近的计划
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • #define 用法
  • #Z0458. 树的中心2
  • (1)Android开发优化---------UI优化
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • ******之网络***——物理***
  • .net Stream篇(六)
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET下ASPX编程的几个小问题
  • :=
  • @JsonSerialize注解的使用
  • @SpringBootApplication 包含的三个注解及其含义
  • @vue/cli脚手架
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型