先序遍历创建二叉树c++
时间: 2024-04-26 09:17:12 浏览: 107
二叉树的前序遍历(C++)
先序遍历创建二叉树是一种常用的二叉树构建方法,它是通过先序遍历序列来构建二叉树的。下面是先序遍历创建二叉树的步骤:
1. 定义二叉树节点结构体:
```cpp
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
```
2. 创建一个递归函数来构二叉树:
```cpp
TreeNode* buildTree(vector<int>& preorder, int& index) {
if (index >= preorder.size() || preorder[index] == -1) {
index++;
return nullptr;
}
TreeNode* root = new TreeNode(preorder[index]);
index++;
root->left = buildTree(preorder, index);
root->right = buildTree(preorder, index);
return root;
}
```
3. 调用构建函数来创建二叉树:
```cpp
TreeNode* createTree(vector<int>& preorder) {
int index = 0;
return buildTree(preorder, index);
}
```
这样,你就可以通过传入先序遍历序列来创建一个二叉树了。
阅读全文