N元树的有序遍历

时间:2018-08-15 02:46:06

标签: java tree inorder

因此,我正在遍历leetcode并偶然发现了“ N元树后置遍历”。 代码很简单,并且迭代基本上是预先颠倒的。我没有发现这个问题:

class Node {
    public int val;
    public List<Node> children;

    public Node() {}

    public Node(int _val,List<Node> _children) {
          val = _val;
          children = _children;
    }
};

public List<Integer> postorder(Node root) {
    List<Integer> res = new ArrayList<Integer>();
    // getPostOrder(root, res);
    if(root == null)
        return res;

    Deque<Node> stack = new ArrayDeque<Node>();
    stack.push(root);
    while(!stack.isEmpty()){
        Node tempNode = stack.poll();
        res.add(tempNode.val);

        for(Node childrenNode: tempNode.children){
            stack.push(childrenNode);
        }
    }
    Collections.reverse(res);

    return res;
}

但是,由于某种原因,当我尝试考虑n元树的有序情况时,我的大脑变得一片空白。我对迭代特别好奇,尽管两者都很好。

我知道思维过程与常规树有序遍历相同,但是由于某些原因,在尝试思考编码方法时,我只是一片空白。 如果你们不能发布代码,您至少可以给我一个提示或思考的方式让我找出这种有序遍历吗?现在,我一直在困扰我。

0 个答案:

没有答案