fork download
  1.  
  2.  
  3. #include <bits/stdc++.h>
  4. using namespace std;
  5.  
  6. struct TreeNode {
  7. int val;
  8. TreeNode *left;
  9. TreeNode *right;
  10. TreeNode() : val(0), left(nullptr), right(nullptr) {}
  11. TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
  12. TreeNode(int x, TreeNode *left, TreeNode *right)
  13. : val(x), left(left), right(right) {}
  14. };
  15.  
  16. class Solution {
  17. public:
  18. vector<int> postorderTraversal(TreeNode* root) {
  19. vector<int> result;
  20. postOrder(root, result);
  21. return result;
  22. }
  23.  
  24. private:
  25. void postOrder(TreeNode* node, vector<int>& result) {
  26. if (node == nullptr) return;
  27. postOrder(node->left, result);
  28. postOrder(node->right, result);
  29. result.push_back(node->val);
  30. }
  31. };
  32.  
  33. int main() {
  34.  
  35. TreeNode* root = new TreeNode(1);
  36. root->left = new TreeNode(2);
  37. root->right = new TreeNode(3);
  38. root->left->left = new TreeNode(4);
  39. root->left->right = new TreeNode(5);
  40.  
  41. Solution sol;
  42. vector<int> result = sol.postorderTraversal(root);
  43.  
  44. cout << "Postorder traversal: ";
  45. for (int val : result) {
  46. cout << val << " ";
  47. }
  48. cout << endl;
  49.  
  50. return 0;
  51. }
  52.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
Postorder traversal: 4 5 2 3 1