写在前面
题目详情
给定一个 N 叉树,返回其节点值的前序遍历。
例如,给定一个 3叉树 :
1
3 2 4
5 6 NULL NULL NULL NULL
返回其前序遍历: [1,3,5,6,2,4]。
ac代码
class Solution
{
public:
vector<int> res;
vector<int> preorder(Node* root)
{
if(root == NULL)
return res;
else if(root != NULL)
{
res.push_back(root->val);
for(Node* tp : root->children)
preorder(tp);
}
return res;
}
};
class Solution
{
public:
vector<int> preorder(Node* root)
{
vector<int> ans;
if(root == NULL)
return ans;
stack<Node*> s;
Node *p;
int psize = 0;
s.push(root);
while(!s.empty())
{
p = s.top();
ans.push_back(p->val);
psize = p->children.size();
s.pop();
while(psize)
s.push(p->children[--psize]);
}
return ans;
}
};