SMALL

Given an n-ary tree, return the level order traversal of its nodes' values.

Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).

 

n-ary 트리가 주어지고, 노드의 값을 포함한 레벨 순서의 순회 결과를 반환해라 

Nary-Tree 입력값은 레벨 순서 순회로 표시됩니다.

각 그룹의 자식들은 null값으로 구분 지어집니다.

 


문제의 포인트는 결과적으로 주어진 트리의 레벨 별로 배열을 만들어 해당 배열이 포함된 결과를 반환하면 된다.

즉, 레벨 별로 어떠한 노드가 존재하는지 파악하기 위해서는 bfs를 사용하는 것이 적합하다.

 

    public List<List<Integer>> levelOrder(Node root) {
        List<List<Integer>> rst = new ArrayList<>();

        if (root == null) {
            return rst;
        }

        Queue<Node> queue = new LinkedList<>();
        queue.add(root);
        while (!queue.isEmpty()) {
            List<Integer> list = new ArrayList<>();
            int size = queue.size();

            for (int i = 0; i < size; i++) {
                Node node = queue.poll();
                list.add(node.val);

                if (node.children != null) {
                    for (Node n : node.children) {
                        queue.add(n);
                    }
                }
            }
            rst.add(list);
        }
        return rst;
    }

 

문제 출처 :

leetcode.com/problems/n-ary-tree-level-order-traversal/

 

N-ary Tree Level Order Traversal - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

LIST

+ Recent posts