给定一个 N 叉树,返回其节点值的前序遍历

例如,给定一个 3叉树 :

 

LeetCode_589.N叉树的前序遍历

 

返回其前序遍历: [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;
    }
}

相关文章:

  • 2022-01-11
  • 2021-11-24
  • 2021-05-26
  • 2021-12-07
  • 2021-04-24
  • 2021-07-08
  • 2021-12-23
猜你喜欢
  • 2022-02-03
  • 2021-06-17
  • 2022-12-23
  • 2021-05-06
  • 2021-07-30
  • 2021-06-09
  • 2021-09-09
相关资源
相似解决方案