22____从上往下打印二叉树

题目描述:


从上往下打印出二叉树的每个节点,同层节点从左至右打印。

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;

    }

}
*/
//采用 list保存打印的数组序列
//采用队列保存树的结点信息

public class Solution {
    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        
        LinkedList<TreeNode> qeue=new LinkedList<>();  //保存树的结点信息
        ArrayList<Integer> list=new ArrayList<>();   //保存打印出来的val
        
        if(root==null){
            return list;
        }
        
        qeue.add(root);   //先将根结点放进队列
        while(qeue.size()!=0){
             TreeNode tree=qeue.remove();  //当前结点
        if(tree.left!=null){    //放当前结点的左孩子进队列
            qeue.add(tree.left);
        }
        
        if(tree.right!=null){     //放当前结点的右孩子进队列
            qeue.add(tree.right);
        }
        
        list.add(tree.val);    //放数值进 list
        }
       return list; 
    }
}

猜你喜欢

转载自www.cnblogs.com/xbfchder/p/11466567.html