二叉树深度递归的讲解
时间: 2024-02-25 08:58:46 浏览: 80
二叉树递归
二叉树深度是指从根节点到最深叶子节点的最长路径上的节点数。递归是一种解决问题的方法,它将问题分解成更小的子问题,直到问题变得足够简单,可以直接解决。
对于一棵二叉树,它的深度可以通过递归求解。递归基于树的定义:一棵树要么是空树,要么是由一个根节点和两棵分别称为左子树和右子树的子树组成的。因此,我们可以使用递归来计算二叉树的深度。
具体地,我们可以定义一个函数来计算一棵二叉树的深度。该函数的参数是根节点,返回值是树的深度。如果根节点为空,则返回0。否则,我们可以递归计算左子树和右子树的深度,然后取其中较大的值并加1,即为整棵树的深度。
以下是一个示例代码:
```
int maxDepth(TreeNode* root) {
if (root == nullptr) {
return 0;
}
int leftDepth = maxDepth(root->left);
int rightDepth = maxDepth(root->right);
return max(leftDepth, rightDepth) + 1;
}
```
在上面的代码中,我们使用了一个辅助函数`max()`来计算左右子树的深度的最大值。如果左右子树的深度不同,我们需要取其中较大的一个,并加上1,最后得到整棵树的深度。
希望这个解释能够帮助你更好地理解二叉树深度的递归计算方法。
阅读全文