知道二叉树的前序和后序遍历,求二叉树的后序遍历c++
时间: 2024-12-17 14:23:44 浏览: 8
在C++中,二叉树的后序遍历是一种访问节点的方式,它的顺序通常是左子树 -> 右子树 -> 根节点。这里提供一种基本的递归方法来实现这个功能:
```cpp
#include <iostream>
using namespace std;
// 定义二叉树结点
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 后序遍历函数
void postorderTraversal(TreeNode* root) {
if (root == nullptr) return; // 当根节点为空时直接返回
postorderTraversal(root->left); // 先遍历左子树
postorderTraversal(root->right); // 再遍历右子树
cout << root->val << " "; // 最后打印当前节点值
}
int main() {
// 创建并初始化一个二叉树
TreeNode* tree = new TreeNode(1);
tree->left = new TreeNode(2);
tree->right = new TreeNode(3);
tree->left->left = new TreeNode(4);
tree->left->right = new TreeNode(5);
// 调用后序遍历
postorderTraversal(tree);
cout << endl; // 结束遍历后换行
// 注意:记得删除创建的临时节点以避免内存泄露
delete tree->left->right;
delete tree->left->left;
delete tree->left;
delete tree->right;
delete tree;
return 0;
}
```
阅读全文