二叉树
文章平均质量分 51
lyx_19961207
这个作者很懒,什么都没留下…
展开
-
二叉树的最小深度
1.问题描述 给定一个二叉树,找出其最小深度。 二叉树的最小深度为根节点到最近叶子节点的距离。 样例 给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最小深度为 2 2.解题思路 3.代码实现 /** * Def原创 2017-04-17 20:43:52 · 130 阅读 · 0 评论 -
二叉树的所有路径
1.问题描述 给一棵二叉树,找出从根节点到叶子节点的所有路径。 样例 给出下面这棵二叉树: 1 / \ 2 3 \ 5 所有根到叶子的路径为: [ "1->2->5", "1->3" ] 2.解题思路 3.代码实现 /** * Definition of TreeNode: * class TreeNode {原创 2017-04-21 16:40:12 · 398 阅读 · 0 评论 -
二叉树的路径和
1.问题描述 给定一个二叉树,找出所有路径中各节点相加总和等于给定目标值 的路径。 一个有效的路径,指的是从根节点到叶节点的路径。 样例 给定一个二叉树,和 目标值 = 5: 1 / \ 2 4 / \ 2 3 返回: [ [1, 2, 2], [1, 4] ] 2.解题思路 将头结点的左右子树保存在不同的向原创 2017-04-21 17:39:03 · 353 阅读 · 0 评论 -
把排序数组换成高度最小的二叉搜索树
1.问题描述 给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。 注意事项 There may exist multiple valid solutions, return any of them. 样例 给出数组 [1,2,3,4,5,6,7], 返回 4 / \ 2 6 / \ / \ 1原创 2017-04-20 22:19:28 · 197 阅读 · 0 评论 -
将二叉树拆成链表
1.问题描述 将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的right 指针,来表示链表中的 next 指针。 注意事项 不要忘记将左儿子标记为 null,否则你可能会得到空间溢出或是时间溢出。 样例 1 \ 1 2 / \原创 2017-04-20 22:12:06 · 184 阅读 · 0 评论 -
二叉树的层序遍历
1.问题描述 啊 2.解题思路 3.代码实现 4.感想原创 2017-04-20 22:05:22 · 145 阅读 · 0 评论 -
子树
1.问题描述 有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。 注意事项 若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在 T1 节点 n 处将树砍断,砍断的部分将与 T2 完全相同。 样例 下面的例子中 T2 是 T1 的子树原创 2017-04-20 21:58:40 · 136 阅读 · 0 评论 -
二叉树的最大节点
1.问题描述 在二叉树中寻找值最大的节点并返回。 样例 给出如下一棵二叉树: 1 / \ -5 2 / \ / \ 0 3 -4 -5 返回值为 3 的节点。 2.解题思路 3.代码实现 class Solution { public: /** * @param root the root原创 2017-04-17 21:21:03 · 301 阅读 · 0 评论 -
等价二叉树
1.问题描述 检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。 样例 1 1 / \ / \ 2 2 and 2 2 / / 4 4 就是两棵等价的二叉树。 1原创 2017-04-17 21:15:33 · 181 阅读 · 0 评论 -
克隆二叉树
1.问题描述 深度复制一个二叉树。 给定一个二叉树,返回一个他的 克隆品 。 样例 给定一个二叉树: 1 / \ 2 3 / \ 4 5 返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 / \ 4 5 2.解题思路 3.代码实现 /** * Definition of T原创 2017-04-17 21:09:38 · 114 阅读 · 0 评论 -
二叉树的后序遍历
1.问题描述 给出一棵二叉树,返回其节点值的后序遍历。 样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [3,2,1] 2.解题思路 3.代码实现 /** * Definition of TreeNode: * class TreeNode { * public: * int原创 2017-04-17 21:06:19 · 137 阅读 · 0 评论 -
二叉树的中序遍历
1.问题描述 给出一棵二叉树,返回其中序遍历。 样例 给出二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,3,2]. 2.解题思路 3.代码实现 /** * Definition of TreeNode: * class TreeNode { * public: * int val;原创 2017-04-17 21:02:55 · 116 阅读 · 0 评论 -
二叉树的前序遍历
1.问题描述 给出一棵二叉树,返回其节点值的前序遍历。 样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,2,3]. 2.解题思路 3.代码实现 /** * Definition of TreeNode: * class TreeNode { * public: * in原创 2017-04-17 20:58:51 · 105 阅读 · 0 评论 -
二叉树的最大深度
1.问题描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的距离。 样例 给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最大深度为3. 2.解题思路 如果二叉树为空,则深度为0;如果不为空,运用递归,分别求其左子树和右子树的深度,取最大的再加1,因为根节点深度是1,要加进去。 3原创 2017-04-06 21:26:58 · 139 阅读 · 0 评论 -
翻转二叉树
1.问题描述 翻转一棵二叉树 样例 1 1 / \ / \ 2 3 => 3 2 / \ 4 4 2.解题思路 3.代码实现 /** * Definition of TreeNode: * class TreeNode { * public: * int val原创 2017-04-17 20:51:43 · 101 阅读 · 0 评论 -
二叉树总结
二叉树的基本思想是递归思想的调用,还有全局变量和局部变量的运用原创 2017-04-21 18:28:07 · 116 阅读 · 0 评论