data structure | learning note |
---|---|
并查集 | [老刘的刷题笔记系列一]:并查集 |
栈和队列 | [老刘的刷题笔记系列二]:栈和队列 |
排序算法 | [老刘的刷题笔记系列三]:排序算法 |
优先队列 | [老刘的刷题比例系列四]:优先队列 |
二叉树 | [老刘的刷题笔记系列五]:二叉树 |
平衡二叉树 | [老刘的刷题笔记系列七]:平衡二叉树 |
红黑树 | [老刘的刷题笔记系列八]:红黑树 |
Trie树 | [老刘的刷题笔记系列九]:Trie树 |
kd树 | [老刘的刷题笔记系列十]:kd树(KNN算法实现) |
question | tags |
---|---|
1.两数相加 | 数学 |
2.删除链表的倒数第N个节点 | 双指针 |
3.合并两个有序链表 | 归并 |
4.合并k个升序链表 | 归并 |
5.两两交换链表中的节点 | 翻转 |
6.k个一组翻转链表 | 翻转 |
7.旋转链表 | 翻转 |
8.删除排序链表中的重复元素I | 双指针 |
9.删除排序链表中的重复元素II | 双指针 |
10.分割链表 | 双指针 |
11.翻转链表II | 翻转、双指针 |
12.将有序链表转化为二叉搜索树 | 二叉树、双指针、递归 |
13.将二叉树展开为链表 | 二叉树 |
14.填充每个节点的下一个右侧节点指针I | 二叉树、队列、递归 |
15.填充每个节点的下一个右侧节点指针II | 二叉树、层次遍历 |
16.复制带随机指针的链表 | 双指针、虚拟节点 |
17.环形链表I | 双指针 |
18.环形链表II | 双指针 |
19.重排链表 | 双指针、翻转 |
20.LRU缓存 | 双向链表、哈希表、虚拟节点 |
question | tags |
---|---|
1.二叉树的前序遍历 | 遍历 |
2.二叉树的中序遍历 | 遍历 |
3.二叉树的后序遍历 | 遍历 |
4.二叉树的层次遍历 | 遍历 |
5.二叉树的层次遍历II | 层次遍历 |
6.二叉树的右视图 | 层次遍历 |
7.找树左下角的值 | 层次遍历、前序遍历 |
8.二叉搜索树迭代器 | 中序遍历 |
9.上下翻转二叉树 | 中序遍历 |
10.最接近的二叉搜索树值 | 中序遍历 |
11.最接近的二叉搜索树值II | 中序遍历、队列 |
12.二叉树中第k小元素 | 中序遍历 |
13.二叉搜索树的最小绝对差 | 中序遍历 |
14.二叉搜索树中的众数 | 中序遍历 |
15.把二叉搜索树转化为累加树 | 中序遍历翻转 |
16.二叉树的最大深度 | 后序遍历、分治法 |
17.二叉树的直径 | 后序遍历、分治法 |
18.翻转二叉树 | 后序遍历 |
19.寻找重复的子树 | 序列化、后序遍历 |
20.对称的二叉树 | 后序遍历 |
21.相同的树 | 后序遍历 |
22.二叉树的最小深度 | 后序遍历 |
23.平衡二叉树 | 后序遍历 |
24.统计同值子树 | 后序遍历 |
25.完全二叉树的节点个数 | 后序遍历 |
26.左叶子节点之和 | 后序遍历 |
27.最大二叉树 | 二叉树构建 |
28.从前序和中序遍历序列构造二叉树 | 二叉树构建 |
29.从中序和后序遍历序列构造二叉树 | 二叉树构建 |
30.从前序和后序遍历序列构造二叉树 | 二叉树构建 |
31.将有序数组转化为二叉搜索树 | 二叉树构建 |
32.合并二叉树 | 二叉树构建 |
33.二叉树的序列化和反序列化 | 序列化 |
34.二叉树的所有路径 | 回溯算法 |
35.求根节点到叶子节点数字之和 | 回溯算法 |
36.路径总和 | 回溯算法 |
37.路径总和II | 回溯算法 |
38.二叉树中的最大路径和 | 后序遍历、动态规划 |
39.验证二叉搜索树 | 二叉搜索树 |
40.验证前序遍历序列二叉搜索树 | 二叉搜索树 |
41.二叉搜索树中的搜索 | 二叉搜索树 |
42.二叉搜索树中的插入 | 二叉搜索树 |
43.二叉搜索中的删除 | 二叉搜索树 |
44.不同的二叉搜索树I | 二叉搜索树 |
45.不同的二叉搜索树II | 二叉搜索树、二叉树构建 |
46.修剪二叉搜索树 | 二叉搜索树、后序遍历 |
47.恢复二叉搜索树 | 二叉搜索树,中序遍历 |
48.二叉树的最近公共祖先I | 公共祖先 |
49.二叉树的最近公共祖先II | 公共祖先 |
50.二叉树的公共祖先III | 公共祖先 |
51.二叉树的公共祖先IV | 公共祖先 |
52.二叉搜索树的最近公共祖先 | 公共祖先 |