题目描述:
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)
知识点:
在函数之内再写一个函数既可以初始化一个参数并且利用递归持续更新该参数。