排序算法(要会分析时间空间复杂度):冒泡、选择、插入、快排 ★★★ 归并 ★
二分查找(非递归递归)★★★
字符串逆序(翻转整数字符串)★★★
数组乱序(打乱数组,至少掌握两种方法)★★★
数组去重(至少掌握两种方法)★★★
两个栈来实现一个队列(两个队列实现栈可以了解一下)★
链表相关
入门:★★★
- 反转单链表
- 未排序链表去重O(n2)
- 排序链表去重O(n)
- 单链表删除节点
- 链表partition
- 寻找链表倒数第K个节点
- 删除链表倒数第N个节点
- 判断链表是否为回文链表
- 判断链表是否有环
- 环形链表第一个入环节点
- 两个链表的第一个公共节点
复杂:
二叉树各种遍历(前中后序遍历,递归非递归,DFS,BFS)★★★
(好多题其实就是二叉树深度或者广度非递归遍历稍微改一下即可)
二叉树深度相关
二叉树路径相关
- 路径总和1★★★
- 路径总和2(回溯法)★
DP
全排列(回溯法)见LeetCode 全排列1、全排列2 ★