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

每天一道算法题【蓝桥杯】【两两交换链表中的节点】

在这里插入图片描述

思路

本质问题可以分成若干个子问题
即把前两个链表交换,并与后面的链表相连
故实现函数功能调用自身递归即可

#define _CRT_SECURE_NO_WARNINGS 1
struct ListNode {
     int val;
      ListNode *next;
      ListNode() : val(0), next(nullptr) {}
     ListNode(int x) : val(x), next(nullptr) {}
    ListNode(int x, ListNode *next) : val(x), next(next) {}
 };
 
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;
    }
};

相关文章:

  • 【SpringBoot】实现登录功能
  • ES 使用geo point 查询离目标地址最近的数据
  • Vue系统学习day01
  • idea中lombok插件的安装与使用
  • 接口自动化入门 —— JSON中的万能密码--JSONPath解析!
  • PyTorch 入门学习
  • 鸿蒙开发者社区资源的重要性
  • Smart Time Plus smarttimeplus-MySQLConnection SQL注入漏洞(CVE-2024-53544)
  • 快手__NS_sig3数据分析
  • c++介绍智能指针 十二(2)
  • 【C++】 —— 笔试刷题day_4
  • 【Mac 系统卸载 Go 语言完整指南】
  • 【微知】plantuml在泳道图中如何将多个泳道框起来分组并且设置颜色?(box “浏览器“ #LightGreen endbox)
  • 重生之我在学Vue--第11天 Vue 3 高级特性
  • Mybatis语法bug
  • 吴恩达机器学习笔记复盘(三)Jupyter NoteBook
  • Adobe Acrobat Pro setting
  • 第3关:完美综合运算式
  • 如何修改 Ubuntu 软件源(镜像源)
  • Javascript进阶
  • 国创会举办国际茶日活动,十余国驻华大使夫人参加
  • 脱欧后首次英欧峰会召开前夕,双方却因渔业和青年流动议题僵住了
  • 外交部:巴基斯坦副总理兼外长达尔5月19日至21日访华
  • 马上评|中药液涉嫌添加安眠药?药品安全儿戏不得
  • 聘期三年已至:37岁香港青年叶家麟卸任三亚市旅游发展局局长
  • 意德首脑会谈,梅洛尼警告欧盟绿色政策面临“工业荒漠化”