两两交换链表中的节点

  • 题目
  • 思路与算法
  • 代码实现
  • 复杂度分析

题目

思路与算法

  1. 我们以给的例子1→2→3→4说明,因为只需要两两交换,因此最后得到2→1→4→3。
  2. 我们把过程写一下:1→2→3→4 到 2→1→3→4 到 2→1→4→3。先把1指到后面剩余的链表:1→3→4,再把2指到1: 2→1→3→4,每次重复这两个过程就可以了。具体的写法见代码。

代码实现

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
class Solution {public ListNode swapPairs(ListNode head) {// 特殊情况处理if ( head == null || head.next == null){return head;}// 交换ListNode first = head;ListNode second = head.next;first.next = swapPairs(second.next);second.next = first;// 返回头结点return second;}
}

复杂度分析

时间复杂度 空间复杂度
O(N) O(N)

(补)20200328:两两交换链表中的节点(leetcode24)相关推荐

  1. LeetCode-链表-24. 两两交换链表中的节点

    24. 两两交换链表中的节点 思路:使用一个头节点,然后用cur指针指向头 /*** Definition for singly-linked list.* struct ListNode {* in ...

  2. LeetCode 23合并K个升序链表24两两交换链表中的节点

    维护不易,点赞再看,感谢支持 合并K个升序链表 题目描述 给你一个链表数组,每个链表都已经按升序排列. 请你将所有链表合并到一个升序链表中,返回合并后的链表. 示例 1: 输入:lists = [[1 ...

  3. 力扣 两两交换链表中的节点

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

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

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

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

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

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

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

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

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

  8. Python实现两两交换链表中的节点

    题目描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. Leetcode原题地址:https://leetcode-cn. ...

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

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

最新文章

  1. 日志处理logger
  2. ZeroMq实现跨线程通信
  3. java 两个数交换问题
  4. LINQPad学习与验证工具
  5. Spring Cloud构建微服务架构(七)消息总线(续:Kafka)
  6. 关于SMARTFORM的页数问题
  7. MapReduce案例-wordcount-JobMain代码
  8. myeclipse如何修改Web项目名称
  9. 韦东山嵌入式第一期14课第004节_und异常模示程序示例_P笔记
  10. 第一百三十八期:37 个MySQL数据库小知识,为面试做准备
  11. 局域网linux唤醒windows,局域网唤醒 (WOL - Wake on LAN) | 远程启动计算机- ManageEngine OpUtils...
  12. android 悬浮按钮 魅族,Android使用RecycleView实现魅族手机通讯录界面
  13. Java基础---匿名对象的理解和使用
  14. android adapter hierarchy
  15. node-gulp插件
  16. Swift基础加强_跟我打500行
  17. Java并发编程 ReentrantLock 源码分析
  18. java游戏编程:三路兵线,BOSS走位,代码和视频
  19. 显卡煲机测试软件,不用再煲机!这款耳机可自动调音给你提供定制化音频
  20. DevExpress 皮肤控件 更换皮肤

热门文章

  1. 前Facebook面试官告诉你如何才能顺利通过编程面试
  2. 5G 时代,AI 如何破竹而出? | AI ProCon
  3. 百度邀您来听一场云存储的大戏!
  4. @程序员,你敢轻易地写 Bug 吗?
  5. 我的 Windows 电脑已经不用安全软件好多年了
  6. 二叉树+链表+字符串+栈和队列高频面试题合集
  7. day11【过渡】SpringBoot
  8. ie 传递给系统调用的数据区域太小。_RFID银行资产管理系统,智能,简便,易操作...
  9. python代码编辑器、最好_这十大文本/代码编辑器最好用
  10. eclipse 集成svn客户端_SVN的介绍以及使用