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

Leetcode刷题详解——两两交换链表中的节点

1. 题目链接:24. 两两交换链表中的节点

2. 题目描述:

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

示例 1:

img

输入:head = [1,2,3,4]
输出:[2,1,4,3]

示例 2:

输入:head = []
输出:[]

示例 3:

输入:head = [1]
输出:[1]

提示:

  • 链表中节点的数目在范围 [0, 100]
  • 0 <= Node.val <= 100

解法(递归):

算法思路:

  1. 递归函数的含义:交给你一个链表,将这个链表两两交换一下,然后返回交换后的头结点
  2. 函数体:先去处理一下第二个结点往后的链表,然后再把当前的两个结点交换一下,连接上后面处理后的链表
  3. 递归出口:当前结点为空或者当前只有一个结点的时候,不用交换,直接返回

请添加图片描述

class Solution {
public:ListNode* swapPairs(ListNode* head) {if(head==nullptr||head->next==nullptr) return head;auto tmp=swapPairs(head->next->next);auto ret=head->next;head->next->next=head;head->next=tmp;return ret;}
};
http://www.lryc.cn/news/214802.html

相关文章:

  • Openssl数据安全传输平台019:外联接口类的封装以及动态库的制作 - Bug未解决,感觉不是代码的问题
  • YOLO目标检测——安全帽佩戴检测数据集【含对应voc、coco和yolo三种格式标签】
  • P4345 [SHOI2015] 超能粒子炮·改 题解---------Lucas定理
  • http代理和ip代理的区别,代理IP带来了哪些好处?
  • 浅谈电动汽车充电桩检测技术的实现
  • 20 分钟搭建一个串流服务器
  • Android ActivityLifecycleCallback使用
  • 力扣labuladong——一刷day14
  • 循环神经网络(RNN)与长短期记忆网络(LSTM)
  • ArxDbgDocLockWrite 类简介
  • 【教3妹学编辑-算法题】环和杆
  • 解决 eslint 的 Parsing error: Unexpected token 错误
  • VR全景技术在文化展示与传播中有哪些应用?
  • Linux shell编程学习笔记19:until循环语句
  • (CV)论文列表
  • 恶意软件防范和拦截: 提供防范恶意软件攻击的策略
  • 单例模式浅析
  • Springboot引入mybatis-plus及操作mysql的json字段
  • springboot读取application.properties中文乱码问题
  • SAML- 安全断言标记语言
  • 【佳学基因检测】Node.js中http模块的使用
  • 前端基础之JavaScript
  • [GDOUCTF 2023]<ez_ze> SSTI 过滤数字 大括号{等
  • C/C++奇数求和 2021年3月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • Android APT的使用
  • 【刷题宝典NO.0】
  • MySQL数据库——存储过程-介绍以及基本语法(特点、创建、调用、查看、删除、示例)
  • 基础课15——语音标注
  • Linux启动故障排错
  • 全新二开游戏支付通道/话费/电网、紫水晶带云端源码