剑指offer22_从上往下打印二叉树(二叉树的层序遍历)

题目描述

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

//创建两个ArrayList,一个用来存储节点,一个用于存储节点的值作为返回值。
//1.先将根节点加入到队列中
//2.取出根节点的元素,将左右节点放入队列
//3.取出左节点的元素,将左节点的左右节点放入队列
//4.取出右节点的元素,将右节点的左右节点放入队列
//5.按着节点存储队列依次取元素,直到末尾

import java.util.ArrayList;

public class Solution {
    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
            ArrayList<Integer> valList=new ArrayList<Integer>();
            ArrayList<TreeNode> treeList=new ArrayList<TreeNode>();
            if(root==null){
                return valList;
            }
            treeList.add(root);
            for(int i=0;i<treeList.size();i++){//treeList.size()一直在变化
                TreeNode node= treeList.get(i);
                if(node.left!=null){
                    treeList.add(node.left);
                }
                if(node.right!=null){
                    treeList.add(node.right);
                }
                valList.add(node.val);
            }
            return valList;
        }
}

注意:节点队列的特殊写法,和list.get() list.add() list.size()的用法

猜你喜欢

转载自blog.csdn.net/lilililililydia/article/details/88557204