二叉树最大深度(Python)

二叉树的最大深度

http://www.nowcoder.com/questionTerminal/8a2b2bf6c19b4f23a9bdb9b233eefa73

递归

逻辑就是,左子树的最大深度 和 右子树的最大深度 比大小,再加上本节点 1 的深度。
啪得一下,很快啊,就写好了。

class Solution:
    def maxDepth(self , root ):
        if not root:
            return 0

        return 1 + max(self.maxDepth(root.left), self.maxDepth(root.right))

迭代

思路简单来讲就是,创建一个队列(queue),然后把一层的节点都通过 for 遍历到下一层,如此自然每一次 while 循环就是加一层层数,最后返回 cnt。

class Solution:
    def maxDepth(self , root ):
        if not root:
            return 0

        queue, cnt= [root], 0
        while queue:
            cnt += 1
            l = len(queue)
            for i in range(l):
                q = queue.pop(0)
                if q.left:
                    queue.append(q.left)
                if q.right:
                    queue.append(q.right)
        return cnt
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
fRank1e:吓得我不敢去外包了,但是目前也只有外包这一个实习,我还要继续去吗
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务