目录
098 堆 heapify 3
099 堆 增删替换
100 堆 e01 堆排序
100 堆e02 求数组第k大元素
100 堆e03 求数据流第k大元素
100 堆e04 求数据流中位数1
100 堆e04 求数据流中位数2
100 堆e04 求数据流中位数3
101 二叉树 概述
102 二叉树 深度优先遍历
103 二叉树 前中后遍历 递归实现
104 二叉树 前中后遍历 非递归1
105 二叉树 前中后遍历 非递归2
106 二叉树 前中后遍历 非递归3
107 二叉树 前中后遍历 非递归4
108 二叉树 e04 对称二叉树
109 二叉树 e05 最大深度 解法1
110 二叉树 e05 最大深度 解法2
111 二叉树 e05 最大深度 解法3
112 二叉树 e06 最小深度
113 二叉树 e07 翻转二叉树
114 二叉树 e08 根据后缀表达式建树
115 二叉树 e09 根据前中遍历结果建树
116 二叉树 e010 根据中后遍历结果建树
117 二叉搜索树 概述
118 二叉搜索树 get
119 二叉搜索树 泛型key
098 堆 heapify 3
099 堆 增删替换
--------------------------------------------------------------------------------------------------------------------------------
up方法里面,child =parent:因为如果没有退出循环,就还要为下一次的比较做好准备,因此要改变child的值,那改变成什么样子呢?就变成这一轮parent的样子。
---------------------------------------------------------------------------------------------------------------------------------
100 堆 e01 堆排序
100 堆e02 求数组第k大元素
100 堆e03 求数据流第k大元素
100 堆e04 求数据流中位数1
100 堆e04 求数据流中位数2
---------------------------------------------------------------------------------------------------------------------------------
代码解释:利用布尔类型判断是大顶堆还是小顶堆,减少重复的代码。
别的扩容代码:
---------------------------------------------------------------------------------------------------------------------------------
经过修改:
100 堆e04 求数据流中位数3
---------------------------------------------------------------------------------------------------------------------------------
比较器
--------------------------------------------------------------------------------------------------------------------------------
101 二叉树 概述
102 二叉树 深度优先遍历
如何记忆:
前中后,则记忆中间的部分,
前对应中间访问的是左,
中对应中间访问的是中,
后对应中间访问的是右。其余的就按照左中右进行补充。
理解:
前序遍历,从左向右走,去的时候遇到啥遍历啥
中序遍历:从左向右走,去的时候不要,回来的时候,遇到啥遍历啥
后序遍历:从左向右,去的时候不要,回来的时候,真正结束了,才遍历,比如像这个1,我确实后来经过了它,但是其实我们的缘分还未尽。缘分尽了,才遍历。
103 二叉树 前中后遍历 递归实现
104 二叉树 前中后遍历 非递归1
用栈记得来时路。
105 二叉树 前中后遍历 非递归2
中序
前序
106 二叉树 前中后遍历 非递归3
后序遍历中,要增加一些细节去限定条件。当peek的右子树为null的时候,因为左子树已经搞完,而又没有右子树,就可以直接弹出peek。当peek的右子树不为null的时候,就要去判断来时路到底是走左子树还是右子树,因为要判断我现在走回来这条路到底是不是从右子树这边走回来(也就是比较弹栈出来的那个数字是不是peek的右子树),如果弹栈的是7,就说明右孩子都处理完了。如果都不是以上的情况, 则标记peek的右子树为curr,进入下一轮的比较。
107 二叉树 前中后遍历 非递归4
108 二叉树 e04 对称二叉树
109 二叉树 e05 最大深度 解法1
110 二叉树 e05 最大深度 解法2
111 二叉树 e05 最大深度 解法3
112 二叉树 e06 最小深度
--------------------------------------------------------------------------------------------------------------------------------
如果是null的话,就不应该比较了。
--------------------------------------------------------------------------------------------------------------------------------
113 二叉树 e07 翻转二叉树
114 二叉树 e08 根据后缀表达式建树
115 二叉树 e09 根据前中遍历结果建树
116 二叉树 e010 根据中后遍历结果建树
117 二叉搜索树 概述
118 二叉搜索树 get
如果函数最后一步是调用自己,那就是伪递归,尽可能将这个形式转化为非递归形式。
非递归,以下
119 二叉搜索树 泛型key
为了让泛型key进行大小比较,就要实现接口,可以搞一个泛型,或者两个泛型。