C++如何实现成对交换节点
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要讲解了"C++如何实现成对交换节点",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++如何实现成对交换节点"吧!Swap Nodes in
千家信息网最后更新 2025年12月03日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安全错误
数据库的锁怎样保障安全
怎么找出数据库中重复的值
邮件服务器迁移
截图软件开发群
php连接数据库改密码
数据库的核心基础知识
服务器安全和稳定
商品详情连数据库源码
上海学校学习网络安全干部
中国网络安全联赛
我的世界服务器查看在线时长
网络技术专业考一建
武警部队网络安全警示片
数据库识别管理
广东企业软件开发现价
ps4的游戏都无法登录服务器
web服务器调用jsp的过程
服务器升级包括哪些
国家通信网络安全
广州为华互联网科技有限公司
河南恒坤网络技术有限公司
软件开发培训学习有哪些
sql数据库 msi
成都软件开发哪家便宜
新三板网络安全潜力
贷款管理服务器推荐
粮食局网络安全检查自查报告
广州为华互联网科技有限公司
阿里云如何导出数据库
数据库实现完整性实验
软件开发招聘需要多少钱