从上往下打印二叉树

题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印
细读题目发现就是二叉树层序遍历

网友解释

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
/**
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) {
       ArrayList<Integer>list = new ArrayList<>();
        if(root == null){
            return list;
        }
        
        Queue<TreeNode> q = new LinkedList<TreeNode>();//创建用来储存的队列
        q.offer(root);
        
        while(!q.isEmpty()){
                  TreeNode temp = q.poll();
                  list.add(temp.val);
                    if(temp.left != null){
                        q.offer(temp.left);
                    }
              if(temp.right != null){
                        q.offer(temp.right);
                    }
              } 
        return list;
        }
}

记得前面做过一道题目
把二叉树打印成多行
这两道题的思路是一样的, 都是把node存入queue然后排除并存入到arraylist
而本题因为不需要分行,所以更加简单

发布了41 篇原创文章 · 获赞 0 · 访问量 398
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览