zhengxch

难度 medium
给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)
例如:
给定的二叉树是{3,9,20,#,#,15,7},

该二叉树层序遍历的结果是
[
[3],
[9,20],
[15,7]
]
解题思路:这道题是很简单的,从牛客网上做的,其中集合的用法还是百度了,不熟练,所以代码贴上来,多看多记。
代码 t70 s50 java

import java.util.*;
/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param root TreeNode类 
     * @return int整型ArrayList<ArrayList<>>
     */
    public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {
        // write code here
        Queue<TreeNode> q = new LinkedList<>();
        ArrayList<ArrayList<Integer>> res = new ArrayList<>();
        if(root==null) return res;
        q.add(root);
        while(q.size()>0){
            int sz = q.size();
            ArrayList<Integer> temp = new ArrayList<>();
            for(int i=0; i<sz; i++){
                TreeNode node = q.poll();
                temp.add(node.val);
                if(node.left!=null) q.add(node.left);
                if(node.right!=null) q.add(node.right);
            }
            res.add(temp);            
        }
        return res;
    }
}

参考资料

分类:

技术点:

相关文章: