【问题描述】[中等]

【解答思路】

1. 递归

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

class Solution {public ListNode swapPairs(ListNode head) {if(head == null || head.next == null){return head;}ListNode next = head.next;head.next = swapPairs(next.next);next.next = head;return next;}
}
2. 三指针

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

 public ListNode swapPairs(ListNode head) {ListNode pre = new ListNode(0);pre.next = head;//前驱节点 ListNode temp = pre;while(temp.next != null && temp.next.next != null) {ListNode start = temp.next;//交换节点1ListNode end = temp.next.next;//交换节点2 temp.next = end;start.next = end.next;end.next = start;temp = start;}return pre.next;}

【总结】

1. 递归关注总结

找整个递归的终止条件:递归应该在什么时候结束?
找返回值:应该给上一级返回什么信息?
本级递归应该做什么:在这一级递归中,应该完成什么任务?

2.递归是一个反复调用自身的过程,这就说明它每一级的功能都是一样的,因此我们只需要关注一级递归的解决过程即可

参考链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/solution/hua-jie-suan-fa-24-liang-liang-jiao-huan-lian-biao/
参考链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/solution/dong-hua-yan-shi-24-liang-liang-jiao-huan-lian-bia/
参考链接:https://lyl0724.github.io/2020/01/25/1/

[Leetcode][第24题][JAVA][两两交还的链表中的节点][递归][三指针]相关推荐

  1. [Leetcode][第108题][JAVA][将有序数组转换为二叉搜索树][二分法][递归]

    [问题描述][简单] 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树.本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1.示例:给定有序数组: [- ...

  2. Leetcode每日一题:83.remove-duplicates-from-sorted-list(删除排序链表中的重复元素)

    思路:两个指针pre和cur,用cur遍历链表,pre指向cur前面的非重复元素: class Solution {public:ListNode *deleteDuplicates(ListNode ...

  3. [剑指offer]面试题第[54]题[JAVA][二叉搜索树的第k大节点][递归][迭代]

    [问题描述][简单] 给定一棵二叉搜索树,请找出其中第k大的节点.示例 1: 输入: root = [3,1,4,null,2], k = 13/ \1 4\2 输出: 4 示例 2:输入: root ...

  4. Leetcode每日一题:剑指offer22.lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof(链表中倒数第k个节点)

    思路:同上一道题,快慢指针问题: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *nex ...

  5. LeetCode 1721. 交换链表中的节点(快慢指针)

    文章目录 1. 题目 2. 解题 1. 题目 给你链表的头节点 head 和一个整数 k . 交换 链表正数第 k 个节点和倒数第 k 个节点的值后,返回链表的头节点(链表 从 1 开始索引). 示例 ...

  6. [Leetcode][第109题][JAVA][有序链表转换二叉搜索树][分治][快慢指针][中序遍历]

    [问题描述][中等] [解答思路] 1. 分治 快慢指针 复杂度 class Solution {public TreeNode sortedListToBST(ListNode head) {ret ...

  7. Java实现 LeetCode 24 两两交换链表中的节点

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

  8. LeetCode 24:两两交换链表中的节点、1662. 检查两个字符串数组是否相等

    今天一道是单链表一道是String类的 一:LeetCode 24:两两交换链表中的节点 先来看一下题目信息 索引 题目意思就是把一个链表中的两两节点进行交换,题目给的例子是4个节点,是偶数个,两两节 ...

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

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

最新文章

  1. 观察者模式的Java实现及应用
  2. linux用户和组的管理详解
  3. 简单的HBase实践
  4. pix4d怎么查看点云数据_python里怎么查看数据类型
  5. Java虚拟机10:类加载器
  6. 在服务器客户端怎么启用协议,如何启用客户机的WINS功能
  7. java处理报错的快捷键_java快捷键
  8. 通信-RS232、RS485、RS422
  9. 字谜游戏(b)C语言
  10. Word基础(三十四)引文与书目
  11. css实现内凹圆角,利用圆角反向进行(转)
  12. Function类型(函数)
  13. POSIX Timer
  14. pygame战棋游戏制作之战棋棋子设置(二)
  15. 字节跳动社招5面(已拿offer):算法+微服务+多线程+JVM+数据库
  16. IOS跟ANDROID的区别
  17. 【Java编程思想】
  18. 天大《电工技术实验》大作业期末考核
  19. 考试缴费仅能京东支付?北京发改委:滥用行政权力
  20. 一款好用的在线免费思维导图制作工具

热门文章

  1. Python学习笔记——基础篇【第七周】———FTP作业(面向对象编程进阶 Socket编程基础)...
  2. LeetCode 204. Count Primes
  3. Information_Schema系统表
  4. windows cmd后ipconfig后提示不是内部命令或外部命令
  5. JSP中文及传中文参数乱码解决方法小结
  6. linux系统安装arcsde,Linux操作系统安装ArcSDE10
  7. html title属性无效_【学习教程】使用JavaScript删除CSS属性
  8. ORA-28000: the account is locked
  9. mpvue v-html 代替方法 使用 mpvue-wxparse
  10. js 获取 当天凌晨时间