写一下树的层次遍历:
public void bfs(TreeNode node){
print(node.val);
// 子树,第二层
print(node.left);
print(node.right);
List list;
list.add(node.left);
list.add(node.right);
while(list.size()>0){
List list2;
for(Node node list){
print(node.left);
print(node.next);
if(node.left!=null){
list2.add(node.left);
}
if(node.right !=null){
list2.add(node.right);
}
}
list = list2;
}
}
在优化一下:
public void bfs(TreeNode node){
if(node !=null){
return;
}
// 使用队列,把访问的元数弹出来
List list;
list.add(node);
while(list.size()>0){
// 创建了很多对象
List list2;
for(Node node list){
print(node.val);
if(node.left!=null){
list2.add(node.left);
}
if(node.right !=null){
list2.add(node.right);
}
}
// 更新
list = list2;
}
}