题解 | #求二叉树的层序遍历#

求二叉树的层序遍历

http://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3

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

全部评论

相关推荐

死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务