题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
二叉树的层次遍历,广度优先搜索,用队列实现即可;
以前有个BFS的写法思路:点这。。
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
/*层次遍历算法
* 实际就是广度优先BFS*/
public class 从上往下打印二叉树 {
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
//LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。
Queue<TreeNode> queue = new LinkedList<>();
ArrayList<Integer> result = new ArrayList<>();
if (root==null) {
}else {
queue.add(root);
TreeNode temp = null;
while (!queue.isEmpty()) {
temp = queue.poll();
result.add(temp.val);
if (temp.left!=null) {
queue.add(temp.left);
}
if (temp.right!=null) {
queue.add(temp.right);
}
}
}
return result;
}
}

本文介绍了一种从上到下、从左至右打印二叉树各层节点的方法,通过使用队列实现广度优先搜索(BFS),有效地完成了二叉树的层次遍历。
1331

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



