import java.util.ArrayList;
import java.util.LinkedList;
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
//判断二叉树是否为空;
if(root==null){
return new ArrayList();
}
//定义一个数组存储遍历的数据,根据题目要求
ArrayList<Integer> list = new ArrayList<>();
//定义一个队列进行遍历
LinkedList<TreeNode> quere = new LinkedList<TreeNode>();
//第一个节点,当第一个节点进入队列时,应该让其值也进入;
quere.offer(root);
list.add(root.val);
//判断队列是否为空,进行循环遍历
while(!quere.isEmpty()){
//弹出元素,并取得值;
int n = quere.size();
for(int i = 0;i < n;i++){
TreeNode node = quere.poll();
if(node.left!=null){
quere.offer(node.left);
list.add(node.left.val);
}
if(node.right!=null){
quere.offer(node.right);
list.add(node.right.val);
}
}
}
return list;
}
}
从上往下遍历二叉树
最新推荐文章于 2020-08-29 07:36:10 发布