题目
590.N 叉树的后序遍历
题目大意
给定一个 n 叉树的根节点 root
,返回 其节点值的 后序遍历 。
n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null
分隔(请参见示例)。
样例
数据规模
思路
直接考虑对它进行递归后序遍历:
- 当一个节点递归到一个不存在的子节点时,
root
将变成nullptr
,此时直接return
- 如果当前节点是存在的,暂时不将其
val
存储到 v e c t o r vector vector数组ans
中 - 将下来依序访问它的所有子节点
root->children
- 访问回溯回来之后,将其
val
存储到 v e c t o r vector vector数组ans
中
代码
class Solution {
public:
void dfs(Node* root,vector<int>& ans){
if(root==nullptr)return;
for(auto it:root->children){
dfs(it,ans);
}
ans.push_back(root->val);
}
vector<int> postorder(Node* root) {
vector<int>ans;
dfs(root,ans);
return ans;
}
};