先序建立二叉树c++递归
时间: 2023-11-24 20:59:57 浏览: 31
下面给出 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;//约定-1表示空节点
TreeNode* root = new TreeNode(val);
root->left = buildTree();
root->right = buildTree();
return root;
}
void preOrder(TreeNode* root) {//先序遍历二叉树
if (!root) return;
cout << root->val << " ";
preOrder(root->left);
preOrder(root->right);
}
int main() {
TreeNode* root = buildTree();//建立二叉树
preOrder(root);//先序遍历二叉树
return 0;
}
```
建立二叉树时,输入-1表示空节点,递归建立左右子树即可。先序遍历二叉树时,先输出当前节点的值,再遍历左右子树。