当前位置:
首页 >
[Leetcode][第24题][JAVA][两两交还的链表中的节点][递归][三指针]
发布时间:2023/12/10
33
豆豆
生活随笔
收集整理的这篇文章主要介绍了
[Leetcode][第24题][JAVA][两两交还的链表中的节点][递归][三指针]
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
【问题描述】[中等]
【解答思路】
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][两两交还的链表中的节点][递归][三指针]的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【数据结构与算法】排序 冒泡、插入、选
- 下一篇: 有了RK Easywork轻松在线组装标