创建二叉树。 求二叉树的叶子节点代码
时间: 2024-05-25 21:08:08 浏览: 79
编程求解二叉树的叶子节点
创建一个二叉树的一般步骤如下:
1. 定义二叉树的节点结构体,包括节点的值,左子树和右子树指针。
2. 从根节点开始,按照先序遍历的顺序输入二叉树的节点值,如果节点的值为 null,则将该节点设置为 null。
3. 递归地创建左子树和右子树。
下面是一个简单的 C++ 代码示例:
```
#include<iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
TreeNode* buildTree() {
int val;
cin >> val;
if (val == -1) {
return NULL;
}
TreeNode* root = new TreeNode(val);
root->left = buildTree();
root->right = buildTree();
return root;
}
```
至于求二叉树的叶子节点,可以使用递归的方法进行求解。二叉树的叶子节点是指没有左右子树的节点。因此,在递归过程中,如果当前节点为空,则返回 0,否则如果当前节点的左右子树都为空,则说明当前节点是叶子节点,返回 1,否则递归计算左子树和右子树中叶子节点的个数之和。
下面是一个简单的 C++ 代码示例:
```
int countLeaf(TreeNode* root) {
if (root == NULL) {
return 0;
}
if (root->left == NULL && root->right == NULL) {
return 1;
}
return countLeaf(root->left) + countLeaf(root->right);
}
```
阅读全文