leetcode 24: 两两交换链表中的节点
题目:
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
示例:
给定1->2->3->4
, 你应该返回2->1->4->3
.
说明:
- 你的算法只能使用常数的额外空间。
- 你不能只是单纯的改变节点内部的值,而是需要实际
解析:
1 ListNode* swapPairs(ListNode* head) { 2 if(head == nullptr) 3 return head; 4 ListNode *p = head, *q = head->next, *m = head; 5 if(q != nullptr) 6 { 7 head = q; 8 m = p; 9 } 10 int c = 0; 11 while(nullptr != q) 12 { 13 if(c) 14 { 15 m->next = q; 16 m = p; 17 } 18 p->next = q->next; 19 q->next = p; 20 p = p->next; 21 if(nullptr != p) 22 q = p->next; 23 else 24 break; 25 c++; 26 } 27 return head; 28 }
这种方法中p,q指向需要交换的两个节点, m永远指向被交换两个节点前的节点, 通过m把交换后的两个节点与已经交换完成的节点连接起来, 总体空间复杂度O(1),
转载于:https://www.cnblogs.com/bzaq/p/9964539.html
leetcode 24: 两两交换链表中的节点相关推荐
- Leetcode(24)——两两交换链表中的节点
Leetcode(24)--两两交换链表中的节点 题目 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 示例 1: ...
- Java实现 LeetCode 24 两两交换链表中的节点
24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3-&g ...
- LeetCode 24:两两交换链表中的节点、1662. 检查两个字符串数组是否相等
今天一道是单链表一道是String类的 一:LeetCode 24:两两交换链表中的节点 先来看一下题目信息 索引 题目意思就是把一个链表中的两两节点进行交换,题目给的例子是4个节点,是偶数个,两两节 ...
- LeetCode 23合并K个升序链表24两两交换链表中的节点
维护不易,点赞再看,感谢支持 合并K个升序链表 题目描述 给你一个链表数组,每个链表都已经按升序排列. 请你将所有链表合并到一个升序链表中,返回合并后的链表. 示例 1: 输入:lists = [[1 ...
- LeetCode 24.两两交换链表中的节点 C语言
题目 24.两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3- ...
- 24. 两两交换链表中的节点-两两反转链表-LeetCode
一.题目 二.思路 1.采用递归的方式 2.可以通过递归的方式实现两两交换链表中的节点. 递归的终止条件是链表中没有节点,或者链表中只有一个节点,此时无法进行交换. 如果链表中至少有两个节点,则在两两 ...
- LeedCode 24:两两交换链表中的节点
两两交换链表中的节点 题目描述: 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 链接: 24. 两两交换链表中的 ...
- LeetCode-链表-24. 两两交换链表中的节点
24. 两两交换链表中的节点 思路:使用一个头节点,然后用cur指针指向头 /*** Definition for singly-linked list.* struct ListNode {* in ...
- 24.两两交换链表中的节点
24. 两两交换链表中的节点 方法一:迭代,虚拟头结点 class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy ...
- 24. 两两交换链表中的节点
24. 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 示例 1: 输入:head = [1 ...
最新文章
- webpack 大法好 ---- 基础概念与配置(1)
- Winform中怎样重写窗体关闭事件实现验证密码通过才能关闭窗体
- //随机生成1位大写字母\小写字母\数字
- Linux中Shell的命令替换用法笔记
- 优质学习内容(自用)
- c语言字符指针清零,C语言中字符串的内存地址操作的相关函数简介
- C# | C#中变量(局部变量)的声明和范围
- COJS 1752. [BOI2007]摩基亚Mokia
- DSP28335 CAN通讯实验
- java易宝支付接口文档_易宝支付的最新接口文档
- 萤火小程序商城系统安装教程
- TunesKit Video Cutter for mac(视频分割编辑器)
- HDP 03.FreeIPA安装
- 图像修复(拖影、失焦、雨雾、模糊)deblurGAN 论文解读
- 你曾后悔进入 IT 行业吗?
- 东大22春领导科学与决策X《领导科学与决策》在线平时作业3百分非答案
- html的progress 怎么改变默认样式
- 纯电小型领军者 奇瑞无界Pro
- mac系统共享服务器,mac共享服务器
- 搭建数据指标体系(抖音)
热门文章
- 设置Android设备在睡眠期间始终保持WLAN开启的代码实现
- [MSSQL2012]LEAD函数
- 子元素绝对定位absolute后,自动撑开宽度
- Developerkit Link Develop Demo 环境配置指南
- ASP.NET 获取IIS应用程序池的托管管道模式
- gzip压缩算法: gzip 所使用压缩算法的基本原理
- .NET简谈脚本引擎系列(一:认识脚本引擎)
- [转]linux解压 tar命令
- 电脑电视兼容成科技行业新课题
- .NET Core 2.1改进了性能,并提供了新的部署选项