LeetCode 24. 两两交换链表中的节点 (C++实现)

embedded/2024/12/28 2:27:24/

1. 题目描述

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

示例 1:

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

示例 2:

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

示例 3:

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

2. 解题思路

首先定义虚拟头结点dummy,dummy->next 为头结点,然后在定义一个指向虚拟头结点的指针cur,遍历链表,先将cur->next和cur->next->next->next存起来,分别定义指针tmp和tmp1,然后将cur->next指向cur->next->next,cur->next->next指向tmp,cur->next->next->next指向tmp1,然后cur往后移动两个节点,最后返回dummy->next。

3. 代码实现

class Solution {
public:ListNode* swapPairs(ListNode* head) {ListNode* dummy = new ListNode(0);dummy->next = head;ListNode* cur = dummy;while(cur->next != nullptr && cur->next->next != nullptr){ListNode* tmp = cur->next;ListNode* tmp1 = cur->next->next->next;cur->next = cur->next->next;cur->next->next = tmp;cur->next->next->next = tmp1;cur = cur->next->next;}return dummy->next;}
};

http://www.ppmy.cn/embedded/149332.html

相关文章

IntelliJ IDEA中设置激活的profile

在IntelliJ IDEA中设置激活的profile,可以通过以下步骤进行: 通过Run/Debug Configurations设置 打开Run/Debug Configurations对话框: 在IDEA的顶部菜单栏中,选择“Run”菜单,然后点击“Edit Configurations...”或者…

Idea 将多个module显示在同一个project

Idea 将多个maven项目显示在同一个project下 1、选择菜单 File-》New -》Module from Existing Sources -> 2、在弹出的界面选中对应的Module的pom.xml,然后点击OK按钮就行了 (弹出框上面也提示了Eclipse 项目选中.project文件;Maven 项目选中pom.xml; ) 最终显…

vue调试工具 Vue.jsDevtools

文件下载 Vue.js Devtools 通过网盘分享的文件:ddebf336f8a44293bd4db9d0f287bc1c.crx 链接: https://pan.baidu.com/s/1uS3a49CwW-B000p5GwUQmQ 提取码: ko89 下载完了 ,拖入chrome里,打开详情配置. 打开红框中的开关 重启浏览器&#xff…

使用 Docker 在 Ubuntu 下部署 Cloudflared Tunnel 服务器

在现代互联网中,安全和隐私是至关重要的。Cloudflared Tunnel 是 Cloudflare 提供的一种安全隧道解决方案,可以帮助你安全地将本地服务暴露到互联网,而无需暴露你的服务器 IP 地址。通过 Docker 部署 Cloudflared Tunnel,不仅简化…

【k8s】在ingress-controlller中Admission Webhook 的作用

介绍1 在 NGINX Ingress Controller 中,Admission Webhook 是一种用于增强 Kubernetes API 请求的机制,它允许你在资源(如 Ingress)被创建或更新之前对这些请求进行验证或修改。具体来说,Admission Webhook 在 NGINX …

【c++高阶DS】图的遍历

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 目录 01.图的遍历广度优先**详细步骤与例子****假设图如下(无向图):****图的邻接表表示:****从顶点 A 开始的广度优先遍历** 深度优先 01.图…

【ES6复习笔记】生成器(11)

什么是生成器函数 生成器函数是一种特殊的函数,它可以在执行过程中暂停并保存当前状态,然后在需要时恢复执行。生成器函数通过 yield 关键字来实现暂停和恢复执行的功能。 生成器函数的基本用法 定义生成器函数:使用 function* 关键字来定…

建造者模式(Builder Pattern)

建造者模式(Builder Pattern) 建造者模式是一种 创建型设计模式,它将一个复杂对象的构造与它的表示分离,使得同样的构建过程可以创建不同的表示。 原理 核心思想:通过一步步的构建过程来创建复杂对象,而不…