Leetcode 590. N ary Tree Postorder Traversal | | Leetcode 590. N ary Tree Postorder Traversal 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution Recursive 12345678910111213141516171819202122232425262728293031323334353637/*// Definition for a Node.class Node {public: int val; vector<Node*> children; Node() {} Node(int _val, vector<Node*> _children) { val = _val; children = _children; }};*/class Solution {public: vector<int> postorder(Node* root) { vector<int> result; if(!root) { return result; } postOrderTraverse(result, root); return result; } void postOrderTraverse(vector<int>& result, Node* root) { if(!root) { return; } int size = root->children.size(); for(int i = 0; i < size; i++) { postOrderTraverse(result, root->children[i]); } result.push_back(root->val); }}; Iterative 1234567891011121314151617181920212223242526272829303132333435363738394041/*// Definition for a Node.class Node {public: int val; vector<Node*> children; Node() {} Node(int _val, vector<Node*> _children) { val = _val; children = _children; }};*/class Solution {public: vector<int> postorder(Node* root) { vector<int> result; if(!root) { return result; } postOrderTraverse(result, root); return result; } void postOrderTraverse(vector<int>& result, Node* root) { stack<Node*> list; list.push(root); while(!list.empty()) { Node* current = list.top(); list.pop(); int size = current->children.size(); for(int i = 0; i < size; i++) { list.push(current->children[i]); } result.push_back(current->val); } reverse(result.begin(), result.end()); }}; Reference https://leetcode.com/problems/n-ary-tree-postorder-traversal/description/ 如果有收获,可以请我喝杯咖啡! 赏 微信打赏 支付宝打赏