摘要:
反转一个二叉树,例如: 变为: 思路:递归。类似于交换两个整数,只不过是换成了两颗子树。 代码如下: 阅读全文
摘要:
给定一个二叉树,找出最大深度。最大深度指的是从根结点到叶子结点所经过的最多的结点数。 思路:标准的递归问题。后序遍历该二叉树,用指针指向正在遍历的结点,如果指针为空,说明当前结点的深度为0;如果指针非空,则获取左子树的深度,再获取右子数的深度,二者中较大的那个深度加上1即为当前子树的深度。 代码如下 阅读全文
摘要:
本题大意:给定一个非负的整数,重复地将它的各个位数相加直到结果只有一位数字。 例如:num = 38,过程应该是:3 + 8 = 11, 1 + 1 = 2,因为2只有一位数字,就可以返回了。 有没有可能得到o(1)复杂度的算法? 第一种方法:循环。代码如下: 第二种方法:找规律。代码如下: 阅读全文
摘要:
本题大意:你和朋友正在玩一个小游戏。在桌子上放着一堆石头,一次允许你拿走1到3个石头,最后一次能全部拿走的人获胜。由你开始拿石头。你和朋友都很聪明,都能做出让自己赢的最佳决策。现在要写一个判定函数,给定石头的个数,判定你是否能赢。 例如共有4个石头,你就不可能赢得比赛:不管你拿几个石头,最后一个石头 阅读全文