树的层序遍历和树的广度优先遍历类似,都是使用队列进行遍历,而这道题需要每一层的节点数;因此需要记录每一层的节点的个数,这里采用一个size来表示当前队列中的节点数, 初始为根节点,即size为1;此时size-- ;出队;并开始记录它的子节点,有两个,此时队列size为2>0; 执行内层循环,size--讲左子树的子节点入队,此时size为1,继续循环,size--,将右子树的节点入队,size为0;内层循环完成,则第二层访问完毕。 以此类推层数。 比较恼火的是老是忘记边界条件,以后应该先写一个if(root==null) return new ArrayList...