用先序遍历创建二叉树(c++)
时间: 2024-06-13 14:03:50 浏览: 94
用先序遍历创建二叉树的步骤如下:
1. 读入先序遍历序列,如果当前节点为null,则返回null。
2. 创建一个新节点,将当前节点的值赋给新节点。
3. 递归调用创建左子树的函数,将返回值赋给当前节点的左子树。
4. 递归调用创建右子树的函数,将返回值赋给当前节点的右子树。
5. 返回当前节点。
下面是用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(string preorder, int& index) {
if (index >= preorder.size() || preorder[index] == 'null') {
index++;
return NULL;
}
TreeNode* root = new TreeNode(preorder[index] - '0');
index++;
root->left = buildTree(preorder, index);
root->right = buildTree(preorder, index);
return root;
}
int main() {
string preorder;
cin >> preorder;
int index = 0;
TreeNode* root = buildTree(preorder, index);
return 0;
}
```
阅读全文