Java版常见的算法和数据结构(主要来源于LeetCode、剑指offer以及自己遇到的一些面试题)
- 二分查找
BinarySearch
- 统计字符串出现的次数
CountString
- 归并排序
MergeSort
- 替换空格
ReplaceSpace
- 反转字符串
ReverseStr
- 二维数组的查找
TwoDimensionalArray
- Two Sum
TwoSum
- 两个栈实现一个队列
MyQuene
- 查找第一个只出现一次的字符
FirstNotRepeatingChar
- 二叉树的深度
DepthOfBinaryTree
- 合并两个有序的单链表
MergeNode
- 反转单链表
ReverseLinkedList
- 连续子数组的最大和
FindGreatestSumOfSubArray
- 调整数组顺序使奇数位于偶数的前面
ReviseArrayOrder
- 求两个单链表的第一个公共结点
FindFirstCommonNode
- 从尾到头打印链表
PrintListFromTailToHead
- 字符串压缩
CompressString
- 反转二叉树
invertBinaryTree
- 逆波兰表达式求值
EvalRPN
- 旋转数组的搜索
RotateArraySearch
- 二叉树中序遍历
InorderTraversal
- 反转从m到n区间内的链表
ReverseBetween
- 合并两个有序的单链表
MergeTwoLists
- 二叉树的层次遍历
LevelOrder
- 求二叉树最大深度
MaxDepth
- 求两个单链表相交的交点
GetIntersectionNode
- 反转二叉树
InvertBinaryTree
- 反转从m到n区间内的链表
ReverseBetween