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;
    }
}複製代碼
相關文章
相關標籤/搜索