剑指offer_37 从上到下打印二叉树
一、题目从上往下打印出二叉树的每个节点同层节点从左至右打印。二、大致思路使用队列来进行层次遍历。不需要使用两个队列分别存储当前层的节点和下一次的节点 因为在开始遍历一层的节点时当前队列中的节点数就是当前层的节点数只要控制遍历这么多节点数就能保证这次遍历的都是当前层的节点。三、代码实现publicArrayListIntegerprintFromTopToBottom(TreeNode root){QueueTreeNodequeuenewLinkedList();ArrayListIntegerretnewArrayList();queue.add(root);while(!queue.isEmpty()){intcntqueue.size();// 当前层的节点数while(cnt0){TreeNode tmp(TreeNode)queue.poll();if(tmpnull){continue;}ret.add(tmp.val);queue.add(tmp.left);queue.add(tmp.right);}}returnret;}