postorder-traversal.cpp (819B)
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode() : val(0), left(nullptr), right(nullptr) {} 8 * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} 9 * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} 10 * }; 11 */ 12 class Solution { 13 public: 14 vector<int> postorderTraversal(TreeNode* root) { 15 auto result = vector<int>{}; 16 recurse(root,result); 17 return result; 18 } 19 private: 20 void recurse(TreeNode* current, vector<int>& result) { 21 if(current == nullptr) { 22 return; 23 } 24 25 recurse(current->left, result); 26 recurse(current->right, result); 27 result.push_back(current->val); 28 29 return; 30 } 31 32 };