计算二叉树的深度
时间: 2024-02-04 14:08:09 浏览: 76
求二叉树的深度
4星 · 用户满意度95%
计算二叉树的深度可以使用递归的方法,每次递归时深度加1,最终返回根节点的深度即可。具体实现如下:
```c++
// 定义二叉树节点结构体
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
int maxDepth(TreeNode* root) {
if (root == NULL) {
return 0;
}
int leftDepth = maxDepth(root->left); // 递归求左子树深度
int rightDepth = maxDepth(root->right); // 递归求右子树深度
return max(leftDepth, rightDepth) + 1; // 返回左右子树深度较大值加一
}
```
上述代码中,我们定义了一个 `maxDepth` 函数,它的输入参数是二叉树的根节点指针。如果根节点为空,说明二叉树为空树,深度为0,直接返回0。否则,我们分别递归求出左子树和右子树的深度,然后取左右子树深度的较大值,再加上1(加1是因为当前节点也要算一层),就是整个二叉树的深度。最后返回深度即可。
阅读全文