AcWing 44. 分行从上往下打印二叉树
原题链接
中等
作者:
Zh1995
,
2019-08-12 11:21:22
,
所有人可见
,
阅读 779
class Solution {
public List<List<Integer>> printFromTopToBottom(TreeNode root) {
List<List<Integer>> arr=new ArrayList<List<Integer>>();
if(root==null)
return arr;
LinkedList<TreeNode> q=new LinkedList<TreeNode>();
List<Integer> list= new ArrayList<Integer>();
TreeNode last=root;
q.add(root);
boolean flag=false;
while(!q.isEmpty())
{
TreeNode node=q.poll();
list.add(node.val);
if(node==last)
{
flag=true;
arr.add(list);
list=new ArrayList<Integer>();
}
if(node.left!=null)
q.add(node.left);
if(node.right!=null)
q.add(node.right);
if(flag)
{
last=q.peekLast();//某层的最后一个节点
flag=false;
}
}
return arr;
}
}