import java.util.*;/* * public class TreeNode { *   int val = 0; *   TreeNode left = null; *   TreeNode right = null; *   public TreeNode(int val) { *     this.val = val; *   } * } */public class Solution {    /**     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可     *     *     * @param root TreeNode类     * @return int整型二维数组     */    public int[][] levelOrder (TreeNode root) {        Queue<TreeNode> treeNodeQueue = new LinkedList<>();        if (root != null) {            treeNodeQueue.add(root);        }        ArrayList<ArrayList<Integer>> arrayLists = new ArrayList<>();        while (!treeNodeQueue.isEmpty()) {            int size = treeNodeQueue.size();            ArrayList<Integer> tempArrayList = new ArrayList<>();            for (int i = 0; i < size; i++) {                TreeNode treeNode = treeNodeQueue.poll();                assert treeNode != null;                tempArrayList.add(treeNode.val);                if (treeNode.left != null) {                    treeNodeQueue.add(treeNode.left);                }                if (treeNode.right != null) {                    treeNodeQueue.add(treeNode.right);                }            }            arrayLists.add(tempArrayList);        }        int [][] result = new int[arrayLists.size()][];        for (int i = 0; i < arrayLists.size(); i++) {            ArrayList<Integer> arrayList = arrayLists.get(i);            int [] temp = new int[arrayList.size()];            for (int j = 0; j < arrayList.size(); j++) {                temp[j] = arrayList.get(j);            }            result[i] = temp;        }        return result;    }}本题知识点分析:1.二叉树2.队列3.有序集合4.集合转数组本题解题思路分析:1.经典的层序遍历,注意根节点是否为空即可2.注意集合转二维数组怎么转化3.防止空指针,我这边用断言作了判断,用if也可以本题使用编程语言: Java
点赞 1
评论 0
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务