LeetCode0429.N叉树的层序遍历

版权声明:啦啦啦,不用于商业的话随便拿,记得带上博客地址http://blog.csdn.net/wjoker https://blog.csdn.net/wjoker/article/details/84075826

429 N叉树的层序遍历

描述

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

例如,给定一个 3叉树 :

返回其层序遍历

[
     [1],
     [3,2,4],
     [5,6]
]

题解

  • 和107,513类似
	public List<List<Integer>> levelOrder(Node root) {
        ArrayList<Node> arrayList1;
        ArrayList<Node> arrayList2;
        List<List<Integer>> result = new LinkedList<>();
        if (root == null)
            return result;
        
        arrayList1 = new ArrayList<>();
        arrayList1.add(root);
        
        while (!arrayList1.isEmpty()){
            arrayList2 = getNextLayNode(arrayList1);
            List<Integer> nowList = new ArrayList<>();
            for (Node node:arrayList1){
                nowList.add(node.val);
            }
            result.add(nowList);
            arrayList1 = arrayList2;
        }
        return result;
    }
    
    public ArrayList<Node> getNextLayNode(ArrayList<Node> arrayList1){
        ArrayList<Node> arrayList2 = new ArrayList<>();
        for(Node node:arrayList1){
            for (Node subNode:node.children){
                arrayList2.add(subNode);
            }
        }
        return arrayList2;
    }

猜你喜欢

转载自blog.csdn.net/wjoker/article/details/84075826