today我们来练习三道leetcode上的有关于二叉树的题目,都是一些基础的二叉树题目,那让我们一起来学习一下吧。
https://leetcode.cn/problems/maximum-depth-of-binary-tree/submissions/
看题目描述是让我们来求出二叉树的深度,我们以第一个父节点就是我们二叉树的第一层,然后依次往下数,我们要求的就是我们最大层数,我们可以考虑我们用递归的方式。
int maxDepth(struct TreeNode* root) {
if(root == NULL)
{
return 0;
}
if(!root->left && !root->right)
{
return 1;
}
int leftdepth = maxDepth(root->left);
int rightdepth = maxDepth(root->right);
if(leftdepth > rightdepth)
{
return leftdepth+1;
}
else
{
return rightdepth+1;
}
}
我们来看这个就是我们第一次往左边递归到叶子节点然后开始返回。这样子也就是意味着我们的左边也是递归完了,我们要开始递归右边。再来看看我们的递归展开图。
这样就可以算出我们的层数了,所以这题就解决了,下两题我放在下一篇文章。