给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
    示例:
    二叉树:[3,9,20,null,null,15,7],

    1. 3<br /> / \<br /> 9 20<br /> / \<br /> 15 7<br />返回其层序遍历结果:
    [
      [3],
      [9,20],
      [15,7]
    ]
    

    用一个队列存储结点,一个list存储值,由于是分层的,所有要用一个size记录每层的节点个数

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public List<List<Integer>> levelOrder(TreeNode root) {
                if(root == null){
                    return new ArrayList<List<Integer>>();
                }
                List<List<Integer>> res = new ArrayList<List<Integer>>();
                Queue<TreeNode> queue = new LinkedList<>();
                queue.offer(root);
                while(!queue.isEmpty()){
                   int size = queue.size();
                    List<Integer> tmp = new ArrayList<>();
                   while(size>0){
                        //1.先把结点出队,将其val放入list
                    TreeNode node = queue.poll();
                    tmp.add(node.val);
                    //2.如果左节点不为空,入队
                    if(node.left!=null){
                        queue.offer(node.left);
                    }
                    //3.如果右节点不为空,入队
                    if(node.right!=null){
                        queue.offer(node.right);
                    }
                    size--;
                   }
                   res.add(tmp);
                }
                return res;
        }
    }