c++创建二叉树, 求二叉树的叶子节点,求二叉树的深度
时间: 2023-11-29 21:45:00 浏览: 47
以下是C++创建二叉树,求二叉树的叶子节点和深度的代码示例:
1. C++创建二叉树
```c++
#include<iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
TreeNode* createTree() {
int val;
cin >> val;
if (val == -1) {
return NULL;
}
TreeNode* root = new TreeNode(val);
root->left = createTree();
root->right = createTree();
return root;
}
```
2. 求二叉树的叶子节点
```c++
int getLeafNodeNum(TreeNode* root) {
if (root == NULL) {
return 0;
}
if (root->left == NULL && root->right == NULL) {
return 1;
}
return getLeafNodeNum(root->left) + getLeafNodeNum(root->right);
}
```
3. 求二叉树的深度
```c++
int getDepth(TreeNode* root) {
if (root == NULL) {
return 0;
}
int leftDepth = getDepth(root->left);
int rightDepth = getDepth(root->right);
return max(leftDepth, rightDepth) + 1;
}
```