https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal/submissions/
- 现在前序遍历的思路就是根节点,子树1, 子树2,子树3,。。。。子树最后一个
- 转成栈存储的话,栈的处理顺序是先进后出,所以子树的顺序要反过来
class Solution {
public:
vector<int> preorder(Node* root) {
stack<Node*> stk;
if (nullptr == root) {
return vector<int>();
}
vector<int> result;
stk.push(root);
while (!stk.empty()) {
Node* tmp = stk.top();
stk.pop();
result.push_back(tmp->val);
//子树的顺序要反过来
for (int i = tmp->children.size() - 1; i >= 0; i--) {
stk.push(tmp->children[i]);
}
}
return result;
}
};