題目描述:

题目链接: 102-Binary Tree Level Order Traversal

这个问题要解决的是如何逐层遍历一个二叉树,并把同一层元素放入同一list中, 再将所有元素返回。

其实当时我的第一个反应就是树类型的题目已经做了好多了,无非用来用去就是递归,或者队列,那如何解决这个问题呢?

先观察:

我们的顺序肯定只能从root开始往下走, 同时我们考虑最基本的形态, 只有一个root, 和两个子节点,[3] 得到 [9, 20]; 然后再由[9, 20] 得到[15, 7];这只是表面上的, 应为null的节点结果里不需要, 实际上的每层数据是如此:

    

其实也就是说, 所有当前层的节点, 其实都是由上一层每个节点的左右子树而来, 直到第一层root为止。可能我的表述有不清楚, 接下来我们一步一步拆解就是:

(1)首先我们得到了root, 就是3这个节点, 放入当前节点列表list, 因为只有root一个, 这一层我们结束了, 所以就把放入结果集ret中,同时得到下层要用的list(3);

(2)之后第二层怎么得到呢? 自然是之前得到的节点列表list, 从中得到了root, 取root的左右子树, 9, 20, 重新放入list(注意这个list要清空, 或者新建一个), 同时宝塔放入结果集ret中,同时得到下层要用的list(9, 20);

(3)如法炮制:得到list(15, 17) , (注意, 对于9的左右子树,没有的情况就不需要加入list中, 题目要求的结果不需要显示null值。), 放入结果集, 同时得到list(null)

(4)因为当list(null)时, 也就意味着上一个list 已经到了最后一层, 所以结束。

具体代码:

对了,这以上都是本人的一种思路和想法, 肯定还有别的更好的解决方案, 希望有同学可以在下面评论一起交流探讨:)

哦, 差点忘记提了, 还有一道关联题, https://leetcode.com/problems/binary-tree-level-order-traversal-ii/,要求改成了逆序输出, 即从

最后一层往前倒第一层地逐层遍历, 我想只要将结果集reverse下就好了吧, 或者一开始就递归求解?

leecode 每日解题思路 102-Binary Tree Level Order Traversal的更多相关文章

  1. [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, ...

  2. 102. Binary Tree Level Order Traversal 广度优先遍历

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

  3. 【LeetCode】102. Binary Tree Level Order Traversal (2 solutions)

    Binary Tree Level Order Traversal Given a binary tree, return the level order traversal of its nodes ...

  4. [刷题] 102 Binary Tree Level Order Traversal

    要求 对二叉树进行层序遍历 实现 返回结果为双重向量,对应树的每层元素 队列的每个元素是一个pair对,存树节点和其所在的层信息 1 Definition for a binary tree node ...

  5. 【LeetCode】102. Binary Tree Level Order Traversal 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 DFS BFS 日期 题目描述 Given a bi ...

  6. Java [Leetcode 102]Binary Tree Level Order Traversal

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

  7. 【一天一道LeetCode】#102. Binary Tree Level Order Traversal

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 来源: htt ...

  8. Java for 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, ...

  9. [LeetCode]题解(python):102 Binary Tree Level Order Traversal

    题目来源 https://leetcode.com/problems/binary-tree-level-order-traversal/ Given a binary tree, return th ...

  10. 102. Binary Tree Level Order Traversal (Tree, Queue; BFS)

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

随机推荐

  1. Markdown简单语法总结

    . 标题 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 2. 列表 无序列表 * 西瓜 * 葡萄 * 香蕉 - 西瓜 - 葡萄 - ...

  2. WIP_DISCRETE_JOBS.STATUS_TYPE

    WIP_DISCRETE_JOBS.STATUS_TYPE Value Meaning 7 Cancelled 8 Pending Bill Load 9 Failed Bill Load 10 Pe ...

  3. 九九乘法口诀引申出NN乘法口诀

    package com.tfj.function; import java.util.Scanner; public class NNTable { public void method1(int n ...

  4. c#等待所有子线程执行完毕方法

    当我们在使用线程中,你会发现主线结束后子线程的结果才显示出来.现在我要等待所以子线程结束,然后在显示结果,怎么做呢? 方法如下: 1.使用 ManualResetEvent,代码如下:  using  ...

  5. memcached实例(enyim.com Memcached Client)

    在上一篇文章,我们讲了,为什么要使用memched做为缓存服务器(没看的同学请点这里).下面让我们以memcached-1.2.1-win32版本的服务组件(安装后是以一个windows服务做daem ...

  6. PowerDesigner一些小技巧

    1.安装PD v12.0版 2.由pdm生成建表脚本时,字段超过15字符就发生错误(oracle) 原因未知,解决办法是打开PDM后,会出现Database的菜单栏,进入Database - Edit ...

  7. Spring面试题汇总

    一.Spring最核心的功能是什么?使用Spring框架的最核心的原因是什么? Spring 框架中核心组件有三个:Core.Context 和 Beans.其中最核心的组件就是Beans, Spri ...

  8. 普通Java类获取spring 容器的bean的5种方法

    方法一:在初始化时保存ApplicationContext对象方法二:通过Spring提供的工具类获取ApplicationContext对象方法三:继承自抽象类ApplicationObjectSu ...

  9. [Buffalo] 一些SQL函数

    取得当前时间的函数:GETDATE() 计算时间的函数:DATEADD(datepart,number,date) 计算两个时间差额:DATEDIFF(datepart,startdate,endda ...

  10. sr4000自带API和opencv结合获取图像

    /* * ===================================================================================== * * Filen ...