给定一棵用二叉链表表示的二叉树,其根指针为 root,试写出求二叉树的深度的法,用c语言实现算法
时间: 2024-05-09 16:14:23 浏览: 91
与二叉树有关的算法 c
以下是求二叉树深度的C语言实现:
```c
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
int maxDepth(TreeNode* root) {
if (root == NULL) {
return 0;
}
int leftDepth = maxDepth(root->left);
int rightDepth = maxDepth(root->right);
return leftDepth > rightDepth ? leftDepth + 1 : rightDepth + 1;
}
```
我们可以使用递归的方法来求二叉树的深度。对于当前节点,它的深度等于它左右子树的深度的最大值加1。如果节点为空,深度为0。
可以通过调用maxDepth(root)来计算二叉树的深度,其中root是二叉树的根节点。
阅读全文