题解 | #从上往下打印二叉树#
从上往下打印二叉树
http://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701
import java.util.*; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
} */
public class Solution {
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
//很明显这是广度优先遍历,没什么可说的
if(root == null){
return new ArrayList();
}
Queue<TreeNode> queue = new LinkedList<TreeNode>();
queue.add(root);
ArrayList<Integer> resList = new ArrayList<Integer>();
while(!queue.isEmpty()){
TreeNode tmpNode = queue.poll();
resList.add(tmpNode.val);
if(tmpNode.left != null){
queue.offer(tmpNode.left);
}
if(tmpNode.right != null){
queue.offer(tmpNode.right);
}
}
return resList;
}
}
查看7道真题和解析