Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

Example

Given binary tree {3,9,20,#,#,15,7},

    3/ \9  20/  \15   7

return its level order traversal as:

[[3],[9,20],[15,7]
]

分析:
用两个ArrayList,一个保存当前这行所有的Node, 然后另一个数组保存下一行所有的nodes.
 1 /**
 2  * Definition of TreeNode:
 3  * public class TreeNode {
 4  *     public int val;
 5  *     public TreeNode left, right;
 6  *     public TreeNode(int val) {
 7  *         this.val = val;
 8  *         this.left = this.right = null;
 9  *     }
10  * }
11  */
12
13
14 public class Solution {
15     /**
16      * @param root: The root of binary tree.
17      * @return: Level order a list of lists of integer
18      */
19     public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) {
20         ArrayList<ArrayList<Integer>> allLists = new ArrayList<>();
21         if (root == null) return allLists;
22
23         ArrayList<Integer> nums = new ArrayList<>();
24         ArrayList<TreeNode> list1 = new ArrayList<>();
25         ArrayList<TreeNode> list2 = new ArrayList<>();
26
27         list1.add(root);
28
29         while(list1.size() != 0) {
30             for (TreeNode node : list1) {
31                 nums.add(node.val);
32                 if (node.left != null) list2.add(node.left);
33                 if (node.right != null) list2.add(node.right);
34             }
35             list1.clear();
36             allLists.add(new ArrayList<Integer>(nums));
37             nums.clear();
38             ArrayList<TreeNode> temp = list1;
39             list1 = list2;
40             list2 = temp;
41         }
42         return allLists;
43     }
44 }

转载于:https://www.cnblogs.com/beiyeqingteng/p/5649664.html

Binary Tree Level Order Traversal相关推荐

  1. 107. Binary Tree Level Order Traversal II

    题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...

  2. 102. Binary Tree Level Order Traversal

    题目 Binary Tree Level Order Traversal 层次遍历二叉树 链接 Given a binary tree, return the level order traversa ...

  3. LeetCode: 107. Binary Tree Level Order Traversal II

    题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...

  4. Binary Tree Level Order Traversal II 解题思路

    思路: 与Binary Tree Level Order Traversal I 几乎一样.只是最后将结果存放在栈里,然后在栈里再传给向量即可. 再次总结思路: 两个queue,先把第一个放进q1,循 ...

  5. [LeetCode] Binary Tree Level Order Traversal 二叉树层次遍历(DFS | BFS)

    目录: 1.Binary Tree Level Order Traversal - 二叉树层次遍历 BFS 2.Binary Tree Level Order Traversal II - 二叉树层次 ...

  6. LeetCode 107. Binary Tree Level Order Traversal II

    LeetCode 107. Binary Tree Level Order Traversal II Solution1:我的答案 比102那道题多了一行代码... /*** Definition f ...

  7. LeetCode: 102. Binary Tree Level Order Traversal

    题目 Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to rig ...

  8. 【Binary Tree Level Order Traversal】cpp

    题目: Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to ri ...

  9. Binary Tree Level Order Traversal II leetcode java

    题目: Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from ...

  10. Leetcode 102. Binary Tree Level Order Traversal(二叉树的层序遍历)

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

最新文章

  1. Array.asList:数组转list时你一定要知道的“陷阱”!
  2. 数据库--悲观锁【收藏,待尝试】
  3. Unity3D 游戏引擎之IOS高级界面发送消息与Unity3D消息的接收(九)
  4. 根据注释生成项目文档
  5. 网络安全系列之十八 MySQL基本操作(PHP注入基础)
  6. kotlin运行_Kotlin允许,运行,也适用于
  7. 如何优雅的开启mac远程控制
  8. JavaScript数组-多维数组的困惑
  9. 转载:机器人工程师学习计划(YY硕)
  10. java+redis实现腾讯云短信SDK3.0验证+过期时间验证
  11. magento -- 添加中国省份列表
  12. 电脑没声音解决方法(重启/声卡设置/升级声卡驱动)
  13. 概率论考点之检验统计量(区间估计)
  14. Tomcat安装时提示:No Java Virtual Machine found in folder:XXX
  15. 《行为设计学》听后感及听书笔记
  16. 四方光电扬尘传感器PM3006助力打赢蓝天保卫战
  17. Android开发 环境搭建(ubuntu)
  18. Oracle表空间(tablespaces)
  19. c语言200-500完数,C语言求完数(完全数)(详解版)
  20. 微信公众号平搜索排名,如何让公众号搜索排名靠前,公众号文章关键词排名规则

热门文章

  1. 基于Leaflet和GraphHopper实现离线路径规划
  2. 我是如何在两天内做完一个网站的
  3. 分库分表就能无限扩容吗,解释得太好了
  4. 这大概是一篇最简单最清晰的Java JVM执行流程
  5. 【Linux - mysql】linux下mysql报Failed to restart mysqld.service: Unit not found
  6. centos linux编译c,紧急提醒!Linux是如何编译C语言程序文件的?CentOS 8的gcc使用方法介绍...
  7. php多线程foreach,php中foreach curl实现多线程例子
  8. Linux c vim跳到指定行,grep与vim工具基本命令详解
  9. python文本编辑pycharm_PyCharm的基本使用
  10. eclipse java maven_Eclipse构建maven项目