题目 :给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如:给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果: 通过for循环来控制当层的元素,当队列中没有元素时,退出迭代。 ...
分类:
其他好文 时间:
2018-10-24 22:17:45
阅读次数:
178
一、题目 1、审题 2、分析 一棵二叉树,从右边看他,看到的每一层的第一个元素存起来。 二、解答 1、思路: 方法一、 采用 Queue 进行层次遍历,且每次获取一层的最右边一个元素。 方法二、 采用递归获取每一层最右边元素; 即修改后的前序遍历,遍历顺序为: 根 --> 右 --> 左 ; 巧妙的 ...
分类:
其他好文 时间:
2018-10-18 22:08:08
阅读次数:
176
题目 Invert a binary tree. 比如原来的树为 0 1 2 逆转后的树为 0 2 1 也就是把所有结点的左右结点互换 解法一 思路 递归 代码 解法二 思路 非递归,用树的层次遍历 代码 ...
分类:
其他好文 时间:
2018-10-14 13:41:53
阅读次数:
107
层次遍历,就是队列 队列其实就能解决最基本的顺序问题了 先把最先的放进去,然后遍历每个结点,再把他的子结点放进去,顺序就OK了,这是官方用法。 接下来就是解决层级问题,怎么确定每一层呢? 用current来计算当前要处理的结点 用child来计算这一层的结点带来的child结点的个数。 每当curr ...
分类:
其他好文 时间:
2018-10-08 20:35:10
阅读次数:
151
一、题目 1、审题 2、分析 给出一棵二叉树,求其从根节点到叶子节点的所有路径中所经过的节点组成的数值之和。 二、解答 1、思路: 方法一、 采用递归进行 DFS,记录从根节点到叶子节点的所有的路径,在对数值进行累加。 方法二、 采用两个 Queue 进行层次遍历,其中 一个 Queue 记录节点, ...
分类:
其他好文 时间:
2018-10-08 11:26:17
阅读次数:
134
一、题目 1、审题 2、分析 给出一个完全二叉树,添加二叉树的 next 指针指向。 二、解答 1、思路: 方法一、 采用队列进行层次遍历,遍历时添加 next 指针。 方法二、 利用两个指针进行层次遍历,添加 next 指针 方法三、 利用递归实现每一层的 next 指针。 ...
分类:
其他好文 时间:
2018-10-05 18:59:26
阅读次数:
172
本题是广度优先遍历(BFS)实现树的层次遍历,使用队列实现。 ...
分类:
其他好文 时间:
2018-10-04 09:34:52
阅读次数:
154
数据结构是以某种形式将数据组织在一起的集合,不仅存储数据, 还支持访问和处理数据的操作. 基础的数据结构有:线性表(数组,链表),栈与队列,树与二叉树,图等 1. 冒泡 冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置。 快速排序使用分治法策略来把一个序列分为两个子序列 ...
分类:
其他好文 时间:
2018-10-02 20:31:13
阅读次数:
176
一、题目 1、审题 2、分析 给出一颗二叉树,求最小高度(根节点到叶节点的最短距离)。 二、解答 1、思路: 方法一、 采用 BFS 层次遍历的方法进行遍历二叉树。同时,若出现叶子节点,则返回当前高度。 方法二、 采用递归。 另外 ...
分类:
其他好文 时间:
2018-10-01 17:57:34
阅读次数:
160
一、题目 1、审题 2、分析 给出一个二叉树,从下往上输出每一层的节点值。 二、解答 1、思路: 方法一、BFS 利用一个队列进行层次遍历,同时 List 进行插入时,利用 add(index, val) 方法, index 指定插入的 List 的下标。 方法二、DFS 采用递归进行层次遍历,从上 ...
分类:
其他好文 时间:
2018-10-01 11:56:09
阅读次数:
131