讨论/《深度优先搜索》 - 练习:N 叉树的前序遍历/
《深度优先搜索》 - 练习:N 叉树的前序遍历
class Solution {
    public List<Integer> preorder(Node root) {
        if (root == null) {
            return Collections.<Integer>emptyList();
        }
        List<Node> stack = new ArrayList<>();
        List<Integer> ret = new ArrayList<>();

        stack.add(root);

        while (!stack.isEmpty()) {
            root = stack.remove(stack.size() - 1);
            ret.add(root.val);
            if (root.children != null && !root.children.isEmpty()) {
                for (int i = root.children.size() - 1; i >= 0; i--) {
                    stack.add(root.children.get(i));
                }
            }
        }
        return ret;
    }
}
展开全部 5 讨论