题目
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
给定二叉树 [3,9,20,null,null,15,7],
3
/
9 20
/ \
15 7
自己的解法
分析题目,首先考虑到用递归,建立一个新函数用于递归调用。新函数判断传进来的接待你是否为空节点,若不为空则继续进行递归调用,若为空则返回0。
具体代码如下
class Solution:
def maxDepth(self, root: TreeNode) -> int:
#判断当前第一个节点是否为空
if root == None:
return 0
#若不为空,返回当前节点的数量1 和左节点和右节点的最大深度值
return 1+max(deep(root.right),deep(root.left))
def deep(root):
#当传入节点不为空时继续进行调用
if root!=None:
return 1 +max(deep(root.right),deep(root.left))
#当传入节点为空返回0
elif root==None:
return 0
class Solution
{
public:
int deep(TreeNode* root)
{
if (root!=NULL)
{
return 1 + max(deep(root->left),deep(root->right));
}
else
{
return 0;
}
}
int maxDepth(TreeNode* root)
{
if (root == NULL){
return 0;
}
return 1 +max(deep(root->right),deep(root->left));
}
};