思路
采用bfs方式。我采用了bfs的非递归方法。
代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> re=new ArrayList<>();
Queue<TreeNode> q=new LinkedList<>();
if(root==null) return re;
q.add(root);
while(!q.isEmpty()){
int size=q.size();
int count=0;
List<Integer> sub=new ArrayList<>();
while(count<size){
TreeNode cursor=q.poll();
sub.add(cursor.val);
if(cursor.left!=null) q.add(cursor.left);
if(cursor.right!=null) q.add(cursor.right);
count++;
}
re.add(sub);
}
return re;
}
}