1. 题目
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190911200843106.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxMjAxMjY3,size_16,color_FFFFFF,t_70)
2. 解题
2.1 递归
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190911200756500.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxMjAxMjY3,size_16,color_FFFFFF,t_70)
class Solution {
public:
vector<int> preorder(Node* root) {
vector<int> ans;
preRec(root,ans);
return ans;
}
void preRec(Node* root, vector<int> &ans)
{
if(root == NULL)
return;
ans.push_back(root->val);
for(int i = 0; i < root->children.size(); ++i)
preRec(root->children[i], ans);
}
};
2.2 循环
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190911212454249.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxMjAxMjY3,size_16,color_FFFFFF,t_70)
class Solution {
public:
vector<int> preorder(Node* root) {
if(root == NULL)
return {};
vector<int> ans;
stack<Node*> stk;
Node *tp;
int i;
stk.push(root);
while(!stk.empty())
{
tp = stk.top();
ans.push_back(tp->val);
i = tp->children.size();
stk.pop();
while(i)
{
stk.push(tp->children[--i]);
}
}
return ans;
}
};