|编号|题目|解答|Online Judge| |01|设计一个有getMin功能的栈||| |02|由两个栈组成的队列||| |03|如何仅用递归函数和栈操作操作逆序一个栈||| |04|猫狗队列||| |05|用一个栈实现另一个栈||| |06|用栈来求解汉诺塔问题||| |07|生成窗口最大值数组||| |08|构造数组的MaxTree||| |09|求最大子矩阵的大小||| |10|最大值减去最小值小于等于num的子数组数量|||
|编号|题目|解答|Online Judge| |11|打印两个有序链表的公共部分||| |12|在单链表和双链表中删除倒数第k个节点||| |13|删除链表的中间节点和a/b处的节点||| |14|反转单向链表和双向链表||| |15|反转部分单向链表||| |16|环形单链表的约瑟夫问题||| |17|判断一个链表是否为回文结构||| |18|将单向链表按某值划分左边小,中间相等,右边大的形式||| |19|复制含有随机指针节点的链表||| |20|两个单链表生成相加链表||| |21|两个单链表相交的一系列问题||| |22|将单链表的每K个节点之间逆序||| |23|删除无序单链表中值重复出现的节点||| |24|在单链表中删除指定值的节点||| |25|将搜索二叉树转为双向链表||| |26|单链表的选择排序||| |27|一种怪异的节点删除方式||| |28|向有序的环形单链表中插入新节点||| |29|合并两个有序的单链表||| |30|按照左右半区的方式重新组合单链表|||
|31|分别用递归和非递归的方式实现二叉树先序,中序和后序遍历||| |32|打印二叉树的边界节点||| |33|如何较为直观地打印二叉树||| |34|二叉树的序列化和反序列化||| |35|遍历二叉树的神级方法||| |36|在二叉树中找到累加和为指定值的最长路径长度||| |37|找到二叉树中最大搜索二叉子树||| |38|找到二叉树中符合搜索二叉树条件的最大拓扑结构||| |39|二叉树的按层打印和ZigZag打印||| |40|调整搜索二叉树中两个错误的节点||| |41|判断t1树是否包含t2树全部的拓扑结构||| |42|判断t1树中是否有与t2树拓扑结构完全相同的子树||| |43|判断二叉树是否为平衡二叉树||| |44|根据后序数组重建二叉树||| |45|判断一棵二叉树是否为搜索二叉树和平衡二叉树||| |46|通过有序数组生成平衡二叉搜索树||| |47|在二叉树中找到一个节点的后继节点||| |48|在二叉树中找到两个节点的最近公共祖先||| |49|Tarjan算法与并查集解决二叉树节点最近||| |50|||| |51|||| |52|||| |53|||| |54|||| |55||||