摘要: 题目: n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。 当一个数字删除后,从被删除数字的下一个继续删除第m个数字。 求出在这个圆圈中剩下的最后一个数字。 我的思路: 这是个很经典的环形问题,最优的方案 阅读全文
posted @ 2017-03-23 23:18 輪迴之間 阅读(2987) 评论(0) 推荐(1) 编辑
摘要: 题目: 输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。 例如输入: 8 / \ 6 10 / \ / \ 5 7 9 11 输出: 8 / \ 10 6 / \ / \ 11 9 7 5 思路:使用递归的 阅读全文
posted @ 2017-03-23 17:37 輪迴之間 阅读(938) 评论(0) 推荐(0) 编辑
摘要: 题目介绍: 如果把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两个节点之间的个数。 写一个程序求一棵二叉树中相距最远的两个节点之间的距离。 如下图所示,粗箭头的边表示最长距离,显然最大距离是从A到B,为6。 我的思路:最长路径必然要经过树或者其子树的根节点,所以可以用递归 阅读全文
posted @ 2017-03-23 14:47 輪迴之間 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 判断整数序列是不是二元查找树的后序遍历结果 题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。 如果是返回true,否则返回false。 例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果: 8 / \ 6 10 / \ / \ 5 7 9 11 因此 阅读全文
posted @ 2017-03-23 10:59 輪迴之間 阅读(918) 评论(0) 推荐(0) 编辑