题意描述:

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。


示例:

例如:
给定二叉树: [3,9,20,null,null,15,7],3/ \9  20/  \15   7
返回:[3,9,20,15,7]

解题思路:

队列 + BFS


代码:

Python 方法一: 队列 + 循环

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = Noneclass Solution:def levelOrder(self, root: TreeNode) -> List[int]:tmp = [root]ret = []while len(tmp) != 0:node = tmp.pop(0)if node != None:ret.append(node.val)tmp.append(node.left)tmp.append(node.right)return ret

Java 方法一:LinkedList 实现队列

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
import java.util.Queue;
import java.util.LinkedList;class Solution {public int[] levelOrder(TreeNode root) {ArrayList<Integer> ret = new ArrayList<Integer>();Queue<TreeNode> tmp = new LinkedList<TreeNode>();tmp.offer(root);while(tmp.size() != 0){TreeNode node = tmp.poll();if(node != null){ret.add(node.val);tmp.offer(node.left);tmp.offer(node.right);}}int[] ans = new int[ret.size()];for(int i=0; i<ret.size(); ++i){ans[i] = ret.get(i);}return ans;}
}

易错点:

  • 一些测试用例:
[3,9,20,null,null,15,7]
[3,9,20,15,7,null,null]
[]
[1,null,null]
  • 答案:
[3,9,20,15,7]
[3,9,20,15,7]
[]
[1]

总结:


LeetCode-剑指Offe-32-1-从上到下打印二叉树相关推荐

  1. leetcode 打印_剑指 Offer 32 - III 从上到下打印二叉树 III - leetcode 剑指offer

    题目难度: 中等 原题链接 今天继续更新剑指 offer 系列, 这道题相比昨天那道题多了个每层打印方向不同的需求, 聪明的你想到应该如何实现了吗? 老样子晚上 6 点 45 分准时更新公众号 每日精 ...

  2. 【LeetCode】剑指 Offer 32 - III. 从上到下打印二叉树 III

    [LeetCode]剑指 Offer 32 - III. 从上到下打印二叉树 III 文章目录 [LeetCode]剑指 Offer 32 - III. 从上到下打印二叉树 III package o ...

  3. 【LeetCode】剑指 Offer 32 - II. 从上到下打印二叉树 II

    [LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II 文章目录 [LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II 一.层序遍历 BFS 一. ...

  4. 【最佳解法】剑指 Offer 32 - III. 从上到下打印二叉树 III

    立志用最少的代码做最高效的表达 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推. 例如: 给定二叉 ...

  5. 【简洁+注释】剑指 Offer 32 - II. 从上到下打印二叉树 II

    立志用最少的代码做最高效的表达 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 例如: 给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果 ...

  6. 剑指 Offer 32 - III. 从上到下打印二叉树 III

    解题思路:层级遍历 看本题思路之前首先看 1.从上到下打印二叉树1:https://blog.csdn.net/Mr_Jiax/article/details/109783502 2.从上到下打印二叉 ...

  7. 【简洁写法】剑指 Offer 32 - I. 从上到下打印二叉树

    立志用最少的代码做最高效的表达 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 返回: [3,9,20,1 ...

  8. 剑指 Offer 32 - I. 从上到下打印二叉树

    从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3/ \9 20/ \15 7 返回: [3,9,20,1 ...

  9. 剑指 Offer 32 - II. 从上到下打印二叉树 II

    2020-06-22 1.题目描述 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 2.题解 广度优先搜索,即层次遍历即可 3.代码 /*** Definition fo ...

  10. JZ32变形~剑指 Offer 32 - II. 从上到下打印二叉树 II

    放假不学习/上班,学习不放假.放假当然是不能学习或工作啦

最新文章

  1. 如何对软件项目团队成员进行角色和岗位的划分
  2. linux常见的命令
  3. sql语句中 时间数值转换为时间格式函数
  4. C# 线程、任务和同步
  5. 插入最快mysql8.0_MySQL8.0大表秒加字段,是真的吗?
  6. python中修改列表元素的2种方法
  7. C++类中使用new及delete小例子
  8. java安全增加url_规范化String以在Java中创建安全URL
  9. python爬虫requests实战_Python爬虫之requests库网络爬取简单实战
  10. android缓存的后台进程,Android应用程序进程生命周期详解
  11. 如何查看hadoop是32位还是64位
  12. RCON 服务器命令协议
  13. mysql中kill掉所有锁表的进程
  14. PyCharm安装配置教程
  15. [Micropython]TPYBoard开发板点亮心形8*8点阵
  16. 一键解决Windows聚焦不更新的方法
  17. bing输入法linux,必应Bing输入法特殊符号输入方法图文教程
  18. LaTex\TexStduio设置参考文献Bibtex
  19. 录屏储存失败因为5823_屏幕录制储存失败因为-5823怎么找回
  20. 关于服务器ssl配置以后,https无法访问的问题

热门文章

  1. MySQL里Wating for Slave workers to free pending events到底在等什么
  2. 新建一个工作空间,复制原来工作空间的配置
  3. Excel与Word链接操作:使用邮件合并工具
  4. mysql替换首字母_MySQL中使用replace、regexp进行正则表达式替换的用法分析
  5. Android系统默认Home应用程序 Launcher 的启动过程源代码分析
  6. Android攻城狮四大组件之Service
  7. 50欧姆线设计 高频pcb_pcb 50欧姆阻抗匹配设计技巧
  8. 途家木鸟美团夏日折扣对垒,门槛低就一定香吗?
  9. 水处理设备网关,生活污水处理设备网关。
  10. android IO流_Android 开发技术周报 Issue#265