【LeetCode】104. Maximum Depth of Binary Tree Python3解法

题目描述:

Given a binary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

Note: A leaf is a node with no children.

例子:

Example:

Given binary tree [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

return its depth = 3.

思路:

这道题想用递归需要我们带着另一个参数c用来记录当前记录的最大层数。但是当前函数并没有提供我们这个参数,所以我的想法就是在给定函数中再创建一个函数带有当前节点和记录当前层数。当左节点和右节点都为空的时候,直接返回参数c即可。如果左右不为空,递归当前函数并且参数+1。

代码:

class Solution:
    def maxDepth(self, root: TreeNode) -> int:
        
        def count(node,c): 
            if node is None: return 0
            elif node.left is None and node.right is None:
                return c
            else:
                return max(count(node.left,c+1),count(node.right,c+1))
        return count(root,1) 

知识点:

在函数之内再写一个函数既可以初始化一个参数并且利用递归持续更新该参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值