LeetCode 24.Swap Nodes in Pairs
时间:2019-01-19
本文章向大家介绍LeetCode 24.Swap Nodes in Pairs,主要包括LeetCode 24.Swap Nodes in Pairs使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目
这道题的思路显而易见,有成对的节点就交换成对的节点,如果余下一个节点或者没有余下节点则直接返回即可。
思路
首先判断极端情况,若为空链表,则直接返回本身,若链表只有一个节点,则直接返回本身。考虑节点的数量大于等于2的情况,首先确定临时变量的个数,交换两个节点需要三个变量,然后一个变量记录头结点,这一点很重要,新建头结点有至少两点好处,一是头结点方便以后交换节点位置,遍历等。二是将头结点的值固定,函数最后返回头结点的下一个节点即可。若不固定它的值,原链表的头指针很可能会变,导致意想不到的结果。
那么将之前的三个节点分别初始化,值为相连的三个节点,最后一个为头结点,然后开始循环, 因为循环内第一步要交换,然后判断条件是否指针后移,所以循环条件设置为True,即让其无限循环,循环内,先交换他们的值,然后判断是否后移指针,指针要想后移,必须有两个位置,于是条件就为最前面的指针后面有两个节点,否则跳出循环。若最前面的指针后面没有节点,则直接返回即可;若后面有一个节点,也无需交换,返回即可。返回的值为头结点的下一个节点。
- WordPress By Example:一个WordPress 主题搜索引擎
- jquery mobile 移动web(4)
- [C#6] 3-null 条件运算符
- ServiceStack.Redis 使用教程
- WordPress 标签页面只有一篇文章时自动跳转到该文章
- OS X 上使用.NET开发应用程序
- [C#6] 2-nameof 运算符
- Key-Value Coding(KVC),Key-Value Observing(KVO)和Cocoa Bindings for MonoMac
- [C#6] 7-索引初始化器
- jquery mobile 移动web(3)
- 卷积神经网络详解(二)——自己手写一个卷积神经网络
- VS 2010 SP1的一个功能(添加可部署依赖项)
- 一组扁平化组件推荐下载(PSD 格式)
- [C#6] 6-表达式形式的成员函数
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SQL工具集-查询会话等待
- 哈工大李志军操作系统实验1
- 有赞推荐系统关键技术
- 8086汇编格式
- React 中 getDerivedStateFromProps 的三个场景
- Java7的try-with-resources声明(转)
- 聊聊java中的哪些Map:(三)HashMap中的Iterator和Spliterator
- 聊聊java中的哪些Map:(四)LinkedHashMap源码分析
- CGroup 介绍
- 有赞持续集成容器化实践
- 怎么创建一个良好的Git提交信息
- Epoll 如何工作的?
- 用函数式的方式思考——递归
- Linux等待队列原理与实现
- 微信小程序switchTab带参解决方法