class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> result=new ArrayList<>();
if (root==null){
return result;
}//空二叉树
List<List<TreeNode>> tnresult=new ArrayList<>();
List<TreeNode> list=new ArrayList<>();
list.add(root);
tnresult.add(list);
int i=0;
while (!tnresult.get(i).isEmpty()){
List<TreeNode> list1=new ArrayList<>();
for(TreeNode tn:tnresult.get(i)){
if (tn.left!=null){
list1.add(tn.left);
}
if(tn.right!=null){
list1.add(tn.right);
}
}//取节点组集合的前一个节点组,即上一层的全部节点,如果存在左右子节点,添加到当前组
tnresult.add(list1);//将该层子节点组添加到节点组集合
i++;
}//先将所有的节点遍历到集合中
for(List<TreeNode> li:tnresult){
if(li.isEmpty()){
break;
}
List<Integer> lii=new ArrayList<>();
for(TreeNode tr:li){
lii.add(tr.val);
}
result.add(lii);
}//遍历所有节点的值
return result;
}
}
复习CodeTop时突然想到能不能直接暴力解了,不用DFS递归和BFS队列解法,其实写完发现这种解法也类似于BFS,换了个形式而已