前言:
N叉树的前序、和后序遍历的迭代实现与二叉树相似。
首先根据遍历的特性,判断使用stack还是queue。
N叉树的后序遍历,也可由其前序遍历的结果翻转后得到,只不过在孩子结点入栈是,是从左到右依次入栈。
一、N叉树的前序遍历
题源:https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal/
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public:
vector<int> preorder(Node* root) {
vector<int> res;
stack<Node*> s;
if(root==NULL)
return res;
s.push(root);
while(!s.empty()){
Node* p=s.top();
s.pop();
if(p!=NULL){
res.push_back(