摘要:
水平遍历二叉树 题目描述 对于一棵给定的二叉树: 1 / \ 2 3 / \ / \ 4 5 6 7 其水平遍历结果为: 1,2,3,4,5,6,7 算法分析 考虑使用队列来循环遍历该二叉树,首先将根节点放进队列中,循环判断队列是否为空,如果不为空, 则说明还有数据没有遍历到,所以取出队首节点,将队 阅读全文
摘要:
中序遍历和后序遍历构造二叉树 题目描述 根据中序遍历和后序遍历构造二叉树 注意事项 你可以假设树中不存在相同数值的节点 样例 给出树的中序遍历: [1,2,3] 和后序遍历: [1,3,2] 返回如下的树: 2 / \ 1 3 算法分析: 给定同一课二叉树的中序和后序遍历数组,那么后序遍历数组的最后 阅读全文
摘要:
子树 题目描述 有两个不同大小的二叉树:T1有上百万的节点;T2有好几百的节点。请设计一种算法,判定T2是否为T1的子树。 注意事项 若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在T1节点n处将树砍 断,砍断的部分将与T2完全相同。 样例 下面 阅读全文
摘要:
等价二叉树 题目描述 检查两棵二叉树是否等价。等价意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数据相等。 样例 1 1 / \ / \ 2 2 and 2 2 / / 4 4 这就是两棵等价的二叉树。 1 1 / \ / \ 2 3 and 2 3 / \ 4 4 算法分 阅读全文
摘要:
二叉树的所有路径 题目描述 给定一棵二叉树,找从根节点到叶子节点的所有路径 样例 给出下面这课二叉树: 1 / \ 2 3 \ 5 所有根到叶子的路径为: [ "1 2 5", "1 3" ] 算法分析: 递归地处理二叉树,先将子树的所有路径求出,然后把根节点的数据贴到子路径的所有结果上 Java算 阅读全文
摘要:
骰子求和 题目描述 扔n个骰子,向上面的数字之和为 S 。给定 Given n,请列出所有可能的 S 值及其相应的概率。 样例 给定n=1,返回 [ [1, 0.17], [2, 0.17], [3, 0.17], [4, 0.17], [5, 0.17], [6, 0.17]]。 算法分析 该题目 阅读全文
摘要:
平面列表 题目描述 给定一个列表,该列表中的每个要素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。 注意事项 如果给定的列表中的要素本身也是一个列表,那么它也可以包含列表。 样例 给定 [1,2,[1,2]],返回 [1,2,1,2]。 给定 [4,[3,[2,[1]]]],返回 [4 阅读全文
摘要:
将数组重新排序以构造最小值 题目描述 给定一个整数数组,请将其重新排序,以构造最小值。 样例 给定[3,32,321],通过将数组重新排序,可构造6个可能性的数字: 3+32+321=332321 3+321+32=332132 32+3+321=323321 32+321+3=323213 321 阅读全文
摘要:
克隆二叉树 题目描述 深度复制一个二叉树。 给定一个二叉树,返回一个它的克隆品。 样例 给定一个二叉树: 1 / \ 2 3 / \ 4 5 返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 / \ 4 5 Java算法实现 public class Solution { / @param 阅读全文