剑指Offer-31从上到下打印二叉树 II

59 阅读1分钟
public List<List<Integer>> levelOrder(TreeNode root) {
    Queue<TreeNode> queue = new LinkedList<>();
    List<List<Integer>> res = new ArrayList<>();
    if (root != null) {
        queue.add(root);
    }
    while (!queue.isEmpty()){
        List<Integer> temp = new ArrayList<>();
        // 这里实现分层就很秀
        for (int i = queue.size(); i > 0; i--){
            TreeNode t = queue.poll();
            temp.add(t.val);
            if (t.left != null){
                queue.add(t.left);
            }
            if (t.right != null){
                queue.add(t.right);
            }
        }
        res.add(temp);
    }
    return res;
}