给定一个 N 叉树,返回其节点值的后序遍历。
解题思路:每到一个节点,先把他的子节点全部处理完了再处理他本身
class Solution {
public:
vector<int> ans;
vector<int> postorder(Node* root) {
if(root == NULL) return ans;
dfs(root,ans);
ans.emplace_back(root->val);
return ans;
}
void dfs(Node* root,vector<int>& ans)
{
if(root == NULL) return;
auto q = root->children;
int n = q.size();
for(int i = 0 ; i < n ; i++)
{
dfs(q[i],ans);
ans.emplace_back(q[i]->val);
}
}
};