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

层序遍历二叉树

重点:利用队列先进先出特性

代码如下:

//用队列辅助
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.ArrayList;
public class Solution {
    //二叉树的同层打印
    public ArrayList PrintFromTopToBottom(TreeNode root) {
        ArrayList result = new ArrayList<>();
        if(root == null){
            return result;
        }
        //定义一个队列
        Queue queue = new ArrayDeque();
        queue.add(root);
        while(!queue.isEmpty()){
            TreeNode node = queue.poll();
            result.add(node.val);
            if(node.left != null){
                queue.add(node.left);
            }
            if(node.right != null){
                queue.add(node.right);
            }
        }
        return result;
    }
}

 

你可能感兴趣的:(数据结构+算法)