寫在前面
題目詳情
給定一個 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;
}
};