1. 字符串 替换空格左旋转字符串表示数值的字符串把字符串转换成整数 2.链表 从尾到头打印链表反转链表复杂链表的复制 3.双指针 删除链表的节点链表中倒数第k个节点合并两个排序的链表两个链表的第一个公共节点调整数组顺序使奇数位于偶数前面和为s的两个数字翻转单词顺序 4. 栈和队列 用两个栈实现队列包含min函数的栈滑动窗口的最大值队列的最大值 5.模拟 顺时针打印矩阵栈的压入、弹出序列 6. 查找 数组中重复的数字在排序数组中查找数字 I0~n-1中缺失的数字二维数组中的查找旋转数组的最小数字第一个只出现一次的字符 7.搜索与回溯 从上到下打印二叉树从上到下打印二叉树 II从上到下打印二叉树 III树的子结构二叉树的镜像对称的二叉树矩阵中的路径机器人的运动范围二叉树中和为某一值的路径二叉搜索树与双向链表二叉搜索树的第k大节点二叉树的深度平衡二叉树求1+2+…+n二叉搜索树的最近公共祖先二叉树的最近公共祖先序列化二叉树字符串的排列 8. 分治 重建二叉树数值的整数次方二叉搜索树的后序遍历序列打印从1到最大的n位数数组中的逆序对 9.排序 把数组排成最小的数扑克牌中的顺子最小的k个数数据流中的中位数 10.动态规划 斐波那契数列青蛙跳台阶问题股票的最大利润连续子数组的最大和礼物的最大价值