千家信息网

C++如何实现成对交换节点

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要讲解了"C++如何实现成对交换节点",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++如何实现成对交换节点"吧!Swap Nodes in
千家信息网最后更新 2026年11月01日C++如何实现成对交换节点

这篇文章主要讲解了"C++如何实现成对交换节点",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++如何实现成对交换节点"吧!

Swap Nodes in Pairs 成对交换节点

Given a linked list, swap every two adjacent nodes and return its head.

You may not modify the values in the list"s nodes, only nodes itself may be changed.

Example:

Given

1->2->3->4

, you should return the list as

2->1->4->3.

这道题不算难,是基本的链表操作题,我们可以分别用递归和迭代来实现。对于迭代实现,还是需要建立 dummy 节点,注意在连接节点的时候,最好画个图,以免把自己搞晕了,参见代码如下:

解法一:

class Solution {public:    ListNode* swapPairs(ListNode* head) {        ListNode *dummy = new ListNode(-1), *pre = dummy;        dummy->next = head;        while (pre->next && pre->next->next) {            ListNode *t = pre->next->next;            pre->next->next = t->next;            t->next = pre->next;            pre->next = t;            pre = t->next;        }        return dummy->next;    }};

递归的写法就更简洁了,实际上利用了回溯的思想,递归遍历到链表末尾,然后先交换末尾两个,然后依次往前交换:

解法二:

class Solution {public:    ListNode* swapPairs(ListNode* head) {        if (!head || !head->next) return head;        ListNode *t = head->next;        head->next = swapPairs(head->next->next);        t->next = head;        return t;    }};

解法三:

class Solution {    public ListNode swapPairs(ListNode head) {        if (head == null || head.next == null) {            return head;        }        ListNode newHead = head.next;        head.next = swapPairs(newHead.next);        newHead.next = head;        return newHead;    }}

感谢各位的阅读,以上就是"C++如何实现成对交换节点"的内容了,经过本文的学习后,相信大家对C++如何实现成对交换节点这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

节点 C++ 解法 递归 学习 内容 末尾 迭代 简洁 两个 代码 写法 实际 实际上 就是 思想 思路 情况 文章 时候 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 上海喔噻互联网科技有限公司 深圳市人人互联网科技有限公司 互联网科技财经 涨乐互联网科技 科技互联网技术 科技与互联网发展 无线互联网科技 火传媒上海互联网科技 镁科技互联网资讯平台 中国最先进互联网科技公司 厦门比较好的科技互联网公司 湖北码尼互联网科技有限公司电话 晓花互联网科技有限公司网址 深圳育鹏互联网科技有限公司招聘 华夏恒生互联网科技013171 云南省自由互联网科技有限公司 上海同邻互联网科技有限公司规模 萌小萌互联网科技河南有限公司 山东亿川互联网科技有限责任公司 广州淘业互联网络科技 智能科技公司是互联网公司吗 人人互联网科技是培训 卓越科技互联网 招聘 创业天下互联网科技有限公司 互联网企业和科技型企业 互联网科技大奖都有哪些公司 群盈汇互联网科技有限公司 互联网时代的科技公司 高科技和互联网的现代国家
0