用vs2022创建二叉树
时间: 2023-09-10 19:05:40 浏览: 83
首先,你需要创建一个二叉树的结构体。可以使用以下代码:
```
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
```
接下来,可以编写一个函数来构建二叉树。假设你已经有了一组按层次遍历顺序排列的节点值作为输入。例如,输入为 {1, 2, 3, 4, 5, 6, 7} 表示的是下面这个二叉树:
```
1
/ \
2 3
/ \ / \
4 5 6 7
```
可以使用以下代码来构建这个二叉树:
```
TreeNode* buildTree(vector<int>& nums) {
if (nums.empty()) return nullptr;
TreeNode* root = new TreeNode(nums[0]);
queue<TreeNode*> q;
q.push(root);
int i = 1;
while (!q.empty() && i < nums.size()) {
TreeNode* cur = q.front();
q.pop();
if (i < nums.size() && nums[i] != -1) {
cur->left = new TreeNode(nums[i]);
q.push(cur->left);
}
i++;
if (i < nums.size() && nums[i] != -1) {
cur->right = new TreeNode(nums[i]);
q.push(cur->right);
}
i++;
}
return root;
}
```
注意,这里假设输入的值中,-1 表示一个空节点。如果你的输入中使用其他符号表示空节点,请相应地修改代码。
最后,你可以在 main 函数中调用 buildTree 函数来构建二叉树。例如:
```
int main() {
vector<int> nums = {1, 2, 3, 4, 5, 6, 7};
TreeNode* root = buildTree(nums);
// do something with the binary tree
return 0;
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)