从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
class Solution {
List<List<Integer>> biglist = new ArrayList<List<Integer>>();
public List<List<Integer>> levelOrder(TreeNode root) {
if(root==null) return biglist;
else order(root,0);
return biglist;
}
public void order(TreeNode root,int level){
if(biglist.size()==level)
biglist.add(new ArrayList<Integer>());//初始化
biglist.get(level).add(root.val);
if(root.left!=null)
order(root.left,level+1);
if(root.right!=null)
order(root.right,level+1);
}
}
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印
class Solution {
public int[] levelOrder(TreeNode root) {
if(root==null) return new int[0];
Queue<TreeNode> queue = new LinkList<TreeNode>();
List<Integer> list=new ArrayList<Integer>();
queue.add(root);
while(!isEmpty()){
TreedNode node = queue.poll();
list.add(node.val);
if(node.left!=null) queue.add(node.left);
if(node.rigrht!=null) queue.add(node.right);
}
int res[] = new int[list.size()];
for(int i=0;i<list.size();i++){
res[i]=list.get(i);
}
return res;
}