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

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

思路:一定要画图,修改指针,去交换两个结点。用图1中所示的三步,交换两个结点。第一步:prev->next=cur->next;第二步:cur->next=cur->next->next;第三步:prev->next->next=cur。交换之后,cur指向的仍然是原来的结点,但是位置已经发生变化,如图2所示,然后prev=cur,cur=cur->next,不断循环,直到链表中的两两相邻的结点全部交换完毕。

代码:

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 == NULL)return head;ListNode* dummyHead = new ListNode(0);dummyHead->next = head;ListNode* prev = dummyHead;ListNode* cur = dummyHead->next;while (cur != NULL && cur->next != NULL) {prev->next = cur->next;cur->next = cur->next->next;prev->next->next = cur;prev = cur;cur = cur->next;}head = dummyHead->next;delete dummyHead;return head;}
};

两两交换链表中的结点相关推荐

  1. 两两交换链表中的结点-指针

    题意 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 样例 示例1输入:head = [1,2,3,4] 输出:[ ...

  2. Leetcode--24. 两两交换链表中的结点

    给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3->4, 你应该返回 2-&g ...

  3. L24两两交换链表中的结点(链表)

    描述 1->2->3->4 两两交换 2->1->4->3 解题思路 class Solution {public:ListNode* swapPairs(List ...

  4. 24.两两交换链表中的结点

    class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy = new ListNode();dummy.next ...

  5. (补)20200328:两两交换链表中的节点(leetcode24)

    两两交换链表中的节点 题目 思路与算法 代码实现 复杂度分析 题目 思路与算法 我们以给的例子1→2→3→4说明,因为只需要两两交换,因此最后得到2→1→4→3. 我们把过程写一下:1→2→3→4 到 ...

  6. 24.两两交换链表中的节点

    24. 两两交换链表中的节点 方法一:迭代,虚拟头结点 class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy ...

  7. Leetcode(24)——两两交换链表中的节点

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

  8. LeetCode 24.两两交换链表中的节点 C语言

    题目 24.两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3- ...

  9. 链表——24. 两两交换链表中的节点

    1 题目描述 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 2 题目示例 示例 2: 输入 ...

最新文章

  1. Visual Assist x 无法自动补全Snippet提示的解决方法
  2. QT学习笔记(2)----- QT安装教程
  3. SQL CE 3.0 与SQL CE 3.5区别
  4. oracle游标语法举例,PL/SQL语句块基本语法(ORACLE存储过程,函数,包,游标)
  5. php返回并中断,php – 如何从回调函数返回控件或中断array_filter处理中的数组处理...
  6. 鸿蒙电视应用市场,任正非:鸿蒙系统已上线,未来将被应用到手机、平板、电视系列产品上...
  7. 【Maven】1.使用myecplise配置自己的Maven配置,不使用默认的maven
  8. .fit文件读取--head信息--修改head--读取csv文件-------ska暑期训练
  9. 如何优雅的选择字体(font-family)
  10. 001.Heartbeat简介
  11. 《论文阅读》FroDO: From Detections to 3D Objects
  12. java if函数的使用方法_IF函数的使用方法(入门+进阶+高级)
  13. 西游记团队与Scrum团队中的角色关系映射
  14. 如何入门“动物杂交:新视野”
  15. Python 爬取 百度地图搜索结果
  16. N位加减法运算器实现(Verilog HDL)|计算机组成
  17. 二、BLDC矢量控制基础知识:SVPWM原理
  18. Spring MVC @RequestMapping详解
  19. docker安装WordPress
  20. 详情小三角css,CSS实现小三角

热门文章

  1. 科丁乐编程LV4第一单元考试题目与讲解
  2. Vue+Three.js实现三维管道可视化及流动模拟
  3. 西电软工操作系统实验:编译Ubuntu18.04新内核并添加系统调用(含代码以及详细分析)
  4. Rockchip RK3588获取芯片的实时温度
  5. SpringBoot项目启动,插件配置版本都协调可以兼容了但是还报错:Error while storing the mojo status
  6. 和我一起学习爬虫之爬虫原理和网站基本知识
  7. 网上为什么这么多人质疑和抹黑小罐茶暖莘茶呢?是因为不好吗?
  8. jquery获取以固定字符串开头的id的div
  9. PyTorch超级资源列表(Github 2.4K星)包罗万象
  10. 三维BIM+WebGIS技术在数字水库平台的搭建中有何作用?