创建二叉树和销毁二叉树的c++代码是什么
时间: 2024-05-22 13:08:30 浏览: 110
创建二叉树的C++代码:
```cpp
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
TreeNode* createTree(vector<int>& nums, int i) {
if (i >= nums.size() || nums[i] == -1) {
return nullptr;
}
TreeNode* root = new TreeNode(nums[i]);
root->left = createTree(nums, i * 2 + 1);
root->right = createTree(nums, i * 2 + 2);
return root;
}
```
上述代码中,`createTree` 函数接收一个存放二叉树节点值的向量 `nums` 和一个下标 `i`,返回创建的二叉树的根节点。其中,`-1` 表示空节点。这里使用了递归的方式来创建二叉树。
销毁二叉树的C++代码:
```cpp
void destroyTree(TreeNode* root) {
if (root == nullptr) {
return;
}
destroyTree(root->left);
destroyTree(root->right);
delete root;
}
```
上述代码中,`destroyTree` 函数接收一个二叉树的根节点,通过递归的方式来销毁整棵二叉树。每次先销毁左子树和右子树,然后再销毁当前节点。
阅读全文