二叉树
文章平均质量分 58
syfruoyatiankong
这个作者很懒,什么都没留下…
展开
-
二叉树的中序遍历
一、问题描述 给出一棵二叉树,返回其中序遍历 样例 给出二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,3,2]. 二、解题思路 首先定义一个向量用来储存中序遍历的节点值,按照中序遍历的方式即先访问左子树再访问根然后访问右子树进行遍历然后存储即可。 三、我的代码 class Solu原创 2017-04-10 20:53:20 · 225 阅读 · 0 评论 -
二叉树总结
二叉树总结 首先这一章我们学习到的就是四种遍历方法,前序遍历,中序遍历,后序遍历以及层次遍历,在这次的作业中也是用处很大,此外就是我们学习到的递归思想,大概每道题都要用到这种思想,一开始对递归还是懵懵懂懂的感觉,做了这么多题,加深了我对递归的了解,还有做题过程中用到以前所学习到的函数,比如bool函数,swap函数等,也是对以前的知识的一个复习了,还有对如何把整数型转换为字符型有一个原创 2017-04-21 18:45:46 · 116 阅读 · 0 评论 -
二叉树的最大节点
一、问题描述 在二叉树中寻找值最大的节点并返回。 样例 给出如下一棵二叉树: 1 / \ -5 2 / \ / \ 0 3 -4 -5 返回值为 3 的节点。 二、解题思路 定义一个很小的数和一个指针,然后运用前序遍历,将遍历到的节点值依次与a(当前的最大节点值)进行比较,然后再找出最大值赋值给a,依次进行原创 2017-04-21 18:29:20 · 339 阅读 · 0 评论 -
子树
一、问题描述 有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定T2 是否为 T1的子树。 注意事项 若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在 T1 节点 n 处将树砍断,砍断的部分将与 T2 完全相同。 样例 下面的例子中 T2 是 T1 的子原创 2017-04-21 18:01:59 · 439 阅读 · 0 评论 -
将二叉树拆成链表
一、问题描述 将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。 注意事项 不要忘记将左儿子标记为 null,否则你可能会得到空间溢出或是时间溢出。 样例 1 \ 1 2 /原创 2017-04-20 22:32:39 · 154 阅读 · 0 评论 -
把排序数组转换为高度最小的二叉搜索树
一、问题描述 给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。 样例 给出数组 [1,2,3,4,5,6,7], 返回 4 / \ 2 6 / \ / \ 1 3 5 7 二、解题思路 运用二分法以及递归的思想,一开始l为最左边的数值,r为最右边的数值,然后进行二分,找到中原创 2017-04-20 16:53:54 · 203 阅读 · 0 评论 -
二叉树的所有路径
一、问题描述 给一棵二叉树,找出从根节点到叶子节点的所有路径。 样例 给出下面这棵二叉树: 1 / \ 2 3 \ 5 所有根到叶子的路径为: [ "1->2->5", "1->3" ] 二、解题思路 运用递归的思想查找二叉树的所有路径,定义一个向量用来存储路径,然后运用前序遍历二叉树,返回查找的的路原创 2017-04-17 21:56:32 · 196 阅读 · 0 评论 -
二叉树的路径和
一、问题描述 给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。 一个有效的路径,指的是从根节点到叶节点的路径。 样例 给定一个二叉树,和 目标值 = 5: 1 / \ 2 4 / \ 2 3 返回: [ [1, 2, 2], [1, 4] ] 二、解题思路原创 2017-04-17 11:12:05 · 1616 阅读 · 0 评论 -
翻转二叉树
一、问题描述 翻转一棵二叉树 样例 1 1 / \ / \ 2 3 => 3 2 / \ 4 4 二、解题思路 运用递归算法,前序遍历此二叉树的左右子树,然后运用swap函数交换左右子树即可。 三、我的代码 class Solution { public:原创 2017-04-13 16:24:20 · 151 阅读 · 0 评论 -
等价二叉树
一、问题描述 检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。 样例 1 1 / \ / \ 2 2 and 2 2 / / 4 4 就是两棵等价的二叉树。 1原创 2017-04-12 12:19:23 · 143 阅读 · 0 评论 -
克隆二叉树ke
一、问题描述 深度复制一个二叉树。 给定一个二叉树,返回一个他的 克隆品 。 样例 给定一个二叉树: 1 / \ 2 3 / \ 4 5 返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 / \ 4 5 二、解题思路 运用递归算法,然后前序遍历要克隆的二叉树的节点并赋值给原创 2017-04-12 11:48:25 · 241 阅读 · 0 评论 -
二叉树的最小深度
一、问题描述 给定一个二叉树,找出其最小深度。 二叉树的最小深度为根节点到最近叶子节点的距离。 样例 给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最小深度为 2 二、解题思路 首先若根为空,则输出0,若左子原创 2017-04-12 11:12:38 · 199 阅读 · 0 评论 -
二叉树的最大深度
一、问题描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的距离。 样例 给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最大深度为3. 二、解题思路 运用递归的思想求出左右子树的最大高度,然后进行比较,返回较大值。 三、我的代码 class Solution {原创 2017-04-12 10:51:43 · 155 阅读 · 0 评论 -
二叉树的层次遍历
一、问题描述 给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 样例 给一棵二叉树 {3,9,20,#,#,15,7} : 3 / \ 9 20 / \ 15 7 返回他的分层遍历结果: [ [3], [9,20], [15,7] ] 二、解题思路 定义两个vector容器,一个存储每一层的节点(r),另一个原创 2017-04-10 22:46:19 · 142 阅读 · 0 评论 -
二叉树的后序遍历
一、问题描述 给出一棵二叉树,返回其节点值的后序遍历。 样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [3,2,1] 二、解题思路 定义一个vector容器来存储后序遍历的节点,运用后序遍历的方式即先左子树后右子树再根的方式进行依次遍历存储即可。 三、我的代码 class Solut原创 2017-04-10 21:44:38 · 127 阅读 · 0 评论 -
二叉树的前序遍历
一、问题描述 给出一棵二叉树,返回其节点值的前序遍历。 样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,2,3]. 二、解题思路 定义一个向量容器用来存储前序遍历的节点,然后根据前序遍历的方式即先存储根节点,再左子树,再右子树的方式依次遍历存储。 三、我的代码 class Soluti原创 2017-04-10 21:30:25 · 128 阅读 · 0 评论 -
Convert BST to Greater Tree
一、问题描述 Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original k原创 2017-05-11 18:01:28 · 160 阅读 · 0 评论