给定一个 N 叉树,返回其节点值的前序遍历。
例如,给定一个 3叉树
:
返回其前序遍历: [1,3,5,6,2,4]
。
说明: 递归法很简单,你可以使用迭代法完成此题吗?
### C#代码/*
// Definition for a Node.
public class Node {
public int val;
public IList<Node> children;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val,IList<Node> _children) {
val = _val;
children = _children;
}
}
*/
public class Solution {
public IList<int> Preorder(Node root) {
IList<int> list = new List<int>();
if(root == null) return list;
Stack<Node> stack = new Stack<Node>();
stack.Push(root);
while(stack.TryPop(out Node node)){
list.Add(node.val);
int count = node.children.Count;
while(--count > -1){
stack.Push(node.children[count]);
}
}
return list;
}
}