分享一下我的第24题递归写法,顺便求解递归空间复杂度的分析?

来源:5-4 复杂的穿针引线 Swap Nodes in Pairs

幕布斯1098637

2019-05-08

class Solution {
    public ListNode swapPairs(ListNode head) {
        if (head == null || head.next == null)
            return head;
        //linkedlist at least has two elements.
        ListNode next = head.next;
        head.next = swapPairs(head.next.next);
        next.next = head;
        return next;
    }
}


感觉第24题用递归逻辑会更简洁明了一点。顺便问一下波波老师,这种情况的递归空间复杂度是O(1)还是O(N)? 我觉得是O(1)但是不是很确定


写回答

1回答

liuyubobobo

2019-05-09

感谢分享:)


时间复杂度是O(n)的。你的链表有多长,就会调用swapPairs多少次:)


继续加油!:)

0
2
liuyubobobo
回复
幕布斯1098637
也是O(n)。递归算法占用系统栈。
2019-05-09
共2条回复

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7410 学习 · 1150 问题

查看课程