// fowlup.cpp -- unique_ptr not a good choice
#include <iostream>
#include <string>
//#include <memory>
#include<vector>
#include<string>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) :val(x), left(nullptr), right(nullptr) {}
TreeNode() :val(), left(nullptr), right(nullptr) {}
TreeNode(int x, TreeNode* left, TreeNode* right) : val(x), left(left), right(right) {}
};
//前序
void preorder(TreeNode* root, vector<int>& res) {
if (root == nullptr) {
return;
}
res.push_back(root->val);//中
preorder(root->left, res);//左
preorder(root->right, res);//右
}
//后序
void postorder(TreeNode* root,vector<int>& res) {
if (root == nullptr) {
return;
}
postorder(root->left, res);
postorder(root->right, res);
res.push_back(root->val);
}
//中序
void inorder(TreeNode* root, vector<int>& res) {
if (root == nullptr) {
return;
}
inorder(root->left, res);
res.push_back(root->val);
inorder(root->right, res);
}
int main()
{
using namespace std;
TreeNode root_2 = { 3 };
TreeNode root_1 = { 2,&root_2,nullptr };
TreeNode root = { 1,nullptr,&root_1 };
vector<int> resour;
postorder(&root,resour);
for (vector<int>::iterator it = resour.begin(); it != resour.end(); it++)
{
cout << *it << "->";
}
return 0;
}
二叉树递归
最新推荐文章于 2023-12-08 13:11:09 发布