题目描述

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

示例:

给定 1->2->3->4, 你应该返回 2->1->4->3.

说明:

  • 你的算法只能使用常数的额外空间。
  • 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

解题思路

利用递归的思想,依次交换链表中的节点对。具体对于每个节点来说:

  • 若该节点为NULL,则直接返回NULL
  • 若该节点的下一个节点为NULL,则直接返回该节点
  • 交换该节点与下一个节点,利用辅助指针记录该节点的下一个节点,并递归的交换接下来的节点对

代码

 /**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* swapPairs(ListNode* head) {
if(!head) return NULL;
if(!head->next) return head;
ListNode* temp=head->next;
head->next=swapPairs(temp->next);
temp->next=head;
return temp;
}
};

最新文章

  1. 【转】Linux常用命令大全
  2. http状态码详解
  3. 中秋时候做了一个ppt画图插件
  4. 14.Xcode8imageview图片圆角不显示的bug
  5. SqlServerProxy的一些资料
  6. 说一个Sublime Text 2插件、emmet(原名:zen Coding)
  7. iOS 8 AutoLayOut入门
  8. hdu1754线段树维护区间最大值
  9. VS版本下载
  10. 有关XCode6(iOS8)UITableViewCell与iOS7在UITableViewCell问题
  11. LinuxIP地址、网卡相关、克隆、VM
  12. SecureCRT中vim乱码问题
  13. 工作笔记——使用Jest时遇到的一些问题
  14. CSS 浮动(float)与定位(position)
  15. jQuery自定义alert,confirm方法及样式
  16. Python基础学习(四)
  17. 【转】大数据分析中Redis怎么做到220万ops
  18. AWS 使用经验
  19. 为什么企业依赖于 NoSQL
  20. MVC数据注解

热门文章

  1. $store.getters调用不执行
  2. python之排序(sort/sorted)
  3. html/form表单常用属性认识
  4. C#中实现Hash应用
  5. dedecms 多级栏目时,调用上级栏目名称和链接
  6. shell cat EOF 变量自动解析问题
  7. 垃圾回收gc --翻译
  8. 2019 年百度之星·程序设计大赛 - 初赛一 C. HDU 6670 Mindis 离散化+dijkstra
  9. [易学易懂系列|rustlang语言|零基础|快速入门|(15)|Unit Testing单元测试]
  10. jumpserver部署0.3版本 =====( ̄▽ ̄*)b