写一下树的层次遍历:
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;
}
}
本文介绍了树的数据结构中层次遍历的两种实现方法,并通过示例代码详细展示了如何使用队列来完成这一过程。首先给出了一种直接递归的方式,随后进行了优化,采用队列进行迭代处理,实现了更加高效和简洁的层次遍历。
1354

被折叠的 条评论
为什么被折叠?



