这是一个数据结构和算法笔记本,书写 并 整理一些常见的数据结构和其对应的相关操作。这其中每一个类文件都是一个可以单独运行查看结果的main方法类,相关的关键描述和想说的话都在代码的注释中。(欢迎一同补充和完善,2019年01月04日00:07:40置为public)
-
数组
-
线性数据结构及其对应的常见算法
-
递归
-
分治
-
堆
-
求数
-
搜索
-
图
-
反转
-
二叉树
- 144.二叉树的前序遍历
- 二叉树的下一个节点
- 100.相同的树
- 101.对称二叉树
- 116.填充每个节点的下一个右侧节点指针
- 将二叉树展开为链表
- 654.最大二叉树
- 105.从前序与中序遍历序列构造二叉树
- 106.从中序与后序遍历序列构造二叉树
- 寻找重复的子树
- 二叉树的序列化和反序列化(前序遍历的序列化方式实现)
- 二叉树的序列化和反序列化(后序遍历的序列化方式实现)
- 110.平衡二叉树
- 剑指offer 55.二叉树的深度
- 104.二叉树的最大深度
- 559.N叉树的最大深度
- 111.二叉树的最小深度
- 二叉树的节点个数
- 222.完全二叉树的节点个数
- 257.二叉树的所有路径
- 572.另一个树的子树
- 404.左叶子之和
- 617.合并二叉树
- 236.二叉树的最近公共祖先
- 814.二叉树剪枝
- 965.单值二叉树
-
二叉查找树
-
二分查找
-
双指针
- 141.环形链表
- 142.环形链表II (已知链表当中有环,返回这个环的起始位置)
- 876.链表的中间节点
- 剑指offer 22.链表中倒数第k个节点
- 167.两数之和II - 输入有序数组
- 905.按奇偶排序数组
- 26.删除排序数组中的重复项
- 83.删除排序链表中的重复元素
- 27.移除元素
- 283.移动零
- 287.寻找重复数
- 15.三数之和
- 18.四数之和
- 剑指offer 05.替换空格
- 剑指 Offer II 014.字符串中的变位词
- 剑指 Offer II 011.0 和 1 个数相同的子数组
- 剑指 Offer II 012.左右两边子数组的和相等
- 剑指 Offer II 015.字符串中的所有变位词
-
滑动窗口
-
数据结构设计
-
位运算
-
回溯(DFS) + 剪枝
- 排列
- 组合
- 分割
- 子集
- 棋盘
- 路径
-
广度优先搜索(BFS)
-
数组
-
链表
-
哈希表
-
字符串
-
排序
-
贪心
-
动态规划(DP)
-
栈