LeetCode每日一题:N叉树的层序遍历(No.429)

题目:N叉树的层序遍历


给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
复制代码

示例:


 例如,给定一个 3叉树 :
复制代码

返回其层序遍历:
[
     [1],
     [3,2,4],
     [5,6]
]
复制代码

思考:


这道题就是简单的N叉树的层序遍历算法。
复制代码

实现:


class Solution {
    public List<List<Integer>> levelOrder(Node root) {
        List<List<Integer>> list = new ArrayList<>();
        if (root == null)
            return list;
        List<Node> nodes = root.children;
        List<Node> nodeList;
        List<Integer> r = new ArrayList<>();
        r.add(root.val);
        list.add(r);
        while (nodes.size() > 0) {
            nodeList = new ArrayList<>();
            r = new ArrayList<>();
            for (Node temp : nodes) {
                nodeList.addAll(temp.children);
                r.add(temp.val);
            }
            list.add(r);
            nodes = nodeList;
        }
        return list;
    }
}复制代码

转载于:https://juejin.im/post/5cf9fd69f265da1bc64bb40b

猜你喜欢

转载自blog.csdn.net/weixin_34087301/article/details/91442501