输入先序遍历和中序遍历,输出后序遍历,打印出二叉树,用递归做,c++版?

2025-04-27 00:47:49
推荐回答(1个)
回答1:

//先序遍历#include using namespace std;struct TreeNode{ int val; TreeNode *left, *right;};//先序遍历void PreorderTraversal(TreeNode* root) { if (!root) return; cout << root->val << endl; if (root->left) PreorderTraversal(root->left); if (root->right) PreorderTraversal(root->right);} //中序遍历void InorderTraversal (TreeNode* root){ if (!root) return; if (root->left) InorderTraversal(root->left); cout << root->val << endl; if (root->right) InorderTraversal(root->right);}//后序遍历void PostorderTraversal (TreeNode* root){ if (!root) return; if (root->left) InorderTraversal(root->left); if (root->right) InorderTraversal(root->right); cout << root->val << endl;}int main(){ ...}