每天一道剑指offer-从上往下打印二叉树

辣条走起,每个月的刷题99元奖励靠大家了

前言

今天的题目
每天的题目见github(看最新的日期):
https://github.com/gzc426
具体的题目可以去牛客网对应专题去找。

题目

每天一道剑指offer-从上往下打印二叉树
来源:牛客网对应专题

题目详述

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

题目详解

思路

  • 使用一个队列,实现二叉树的层次遍历

代码

 
public class Solution {
   public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
       ArrayList<Integer> resultList = new ArrayList<>();
       if(root == null)
           return resultList;
       Queue<TreeNode> queue = new LinkedList<>();
       queue.offer(root);
       while(queue.size() != 0)//队列不为空一直进行
       {
           TreeNode tempRoot = queue.poll();//出队
           if(tempRoot.left != null)//左子节点不为空,左子节点入队
               queue.offer(tempRoot.left);
           if(tempRoot.right != null)//右子节点不为空,右子节点入队
               queue.offer(tempRoot.right);
           resultList.add(tempRoot.val);//把出队的节点的值保留下来
       }
       return resultList;
   }
}

代码截图(避免乱码)

结束语

作者乔戈里亲历2019秋招,哈工大计算机本硕,百度java工程师,欢迎大家关注我的微信公众号:程序员乔戈里,公众号有3T编程资源,以及我和我朋友(百度C++工程师)在秋招期间整理的近200M的面试必考的java与C++面经,并有每天一道leetcode打卡群与技术交流群,欢迎关注。


推荐阅读更多精彩内容