题解 | #从上往下打印二叉树#
从上往下打印二叉树
http://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701
import java.util.ArrayList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ import java.util.LinkedList; import java.util.Queue; public class Solution { //用优先队列改变遍历方向 ArrayList<Integer> result=new ArrayList(); Queue<TreeNode> q=new LinkedList(); public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { TreeNode curnode=null; if(root!=null){ q.add(root); } while(q.size()!=0){ curnode=q.remove(); if(curnode.left!=null){ q.add(curnode.left); } if(curnode.right!=null){ q.add(curnode.right); } result.add(curnode.val); } return result; } }