题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后续遍历的结果。如果是则返回true,否则返回false 思路: 后序遍历的特点,最后一个数字为树的根节点的值,数组中前边的数字可以分为两部分,第一部分是左子树的值,都比根节点小,第二部分都是右子树的值,都比根节点大 代码: ...
分类:
其他好文 时间:
2019-08-10 21:00:08
阅读次数:
86
1、先说二叉树的遍历,遍历方式: 前序遍历:先遍历根结点,然后左子树,再右子树 中序遍历:先遍历左子树,然后根结点,再右子树 后续遍历:先遍历左子树,然后右子树,再根结点 上代码:主要还是利用递归 二叉树的非递归遍历 深度优先遍历(主要利用栈的先进后出) 广度优先遍历(主要利用队列的先进先出) 深度 ...
分类:
Web程序 时间:
2019-08-06 10:40:02
阅读次数:
117
题目:如标题所示。 链接:https://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222?tpId=13&tqId=11192&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/codin ...
分类:
其他好文 时间:
2019-07-28 22:53:23
阅读次数:
215
假设有棵树,长下面这个样子,它的前序遍历,中序遍历,后续遍历都很容易知道。 PreOrder: GDAFEMHZ InOrder: ADEFGHMZ PostOrder: AEFDHZMG 现在,假设仅仅知道前序和中序遍历,如何求后序遍历呢?比如,已知一棵树的前序遍历是”GDAFEMHZ”,而中序遍 ...
分类:
其他好文 时间:
2019-07-27 10:04:27
阅读次数:
176
题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 package new_offer; /** * 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 * @author Sonya *思路: *1、借鉴上题 求树的深度。但是效率不高 需要重复遍历结点多次。 *2、后续遍历,记录每个depth ...
分类:
其他好文 时间:
2019-07-12 14:17:54
阅读次数:
113
题目:二叉搜索树的后续遍历数列 要求:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 左图的正确后序遍历序列5、7、6、9、1 1、10、8 第一:递归求解方法 bug1: 关于16行到底是返回temp+1还 ...
分类:
其他好文 时间:
2019-05-18 20:35:48
阅读次数:
254
1.Collection接口 Collection 是java集合框架的顶层接口,它表示为容器,只能存储应用类型数据,为了方便后续遍历最后存储同一类型数据。 Collection 有增删改查等方法。 Iterable 可遍历的接口,集合接口继承于它,集合支持快速遍历。 快速遍历的本质 Collect ...
分类:
其他好文 时间:
2019-05-06 00:55:44
阅读次数:
149
1 集合 为什么要使用集合框架? 传统的容器(数组)在进行增、删等破坏性操作时,需要移动元素,可能导致性能问题;同时添加、删除等算法和具体业务耦合在一起,增加了程序开发的复杂度。 Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中 Collection Colle ...
分类:
其他好文 时间:
2019-04-30 22:01:39
阅读次数:
187
题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 解题思路: 根据二叉搜索的性质,后序遍历是先搜索左子树,再右子数,最后是根结点。对应到序列中就是,序列的最后一位为根结点,从头开始遍历序列中一段连续 ...
分类:
其他好文 时间:
2019-03-26 22:31:02
阅读次数:
139
欢迎 指正 思路:采用类似后续遍历的思想。倒着找,从下向上找; c++实现: 结点结构: 获取树的高度: 这里,我拿刚做好的平衡二叉树做示范,输出结果如下: ...
分类:
其他好文 时间:
2019-03-22 22:56:36
阅读次数:
286