用c加加写一个后序遍历删除二叉树
时间: 2023-12-30 15:06:28 浏览: 69
C语言前序后序遍历二叉树
好的,下面是用C++实现的后序遍历删除二叉树的代码:
```C++
#include <iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
void postOrder(TreeNode* root) {
if (root == NULL) return;
postOrder(root->left);
postOrder(root->right);
cout << root->val << " ";
delete root;
}
int main() {
// 创建二叉树
TreeNode* root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
root->left->left = new TreeNode(4);
root->left->right = new TreeNode(5);
root->right->left = new TreeNode(6);
root->right->right = new TreeNode(7);
// 后序遍历删除二叉树
postOrder(root);
root = NULL;
return 0;
}
```
在代码中,我们定义了一个 `TreeNode` 结构体表示二叉树节点,其中 `val` 表示节点的值,`left` 和 `right` 分别表示节点的左子树和右子树。
然后我们实现了一个 `postOrder` 函数,用于后序遍历并删除二叉树。在函数中,我们首先递归遍历左子树,然后递归遍历右子树,最后输出节点的值并删除节点。
在 `main` 函数中,我们创建了一个二叉树,并调用 `postOrder` 函数进行后序遍历删除。最后将根节点置为 `NULL`,释放内存。
阅读全文