![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构二叉树
每天都要努力学习的阿果
这个作者很懒,什么都没留下…
展开
-
二叉树之前序遍历
题目:给出一棵二叉树,返回其节点值的前序遍历。您在真实的面试中是否遇到过这个题? Yes样例给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,2,3]思路:首先建立向量ss和数组s,以及定义top=-1,当root!=null或者top!=-1时,把root原创 2017-04-19 18:08:38 · 236 阅读 · 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 key in B原创 2017-05-21 14:22:32 · 272 阅读 · 0 评论 -
二叉树的做题总结
提交记录:感想:一开始的时候我更倾向于非递归的方法,因为递归的使用有时候我会乱,可是后来随着做题的深入,我发现非递归的和递归算法的复杂程度,相差的简直不是一星半点,而随着递归的使用增多,对递归算法的理解也逐渐加深,就路径和一题,我是最后做的,感觉对递归的认识也达到一个新的高度,虽然和大手比起来还是小矮人。原创 2017-04-23 18:03:46 · 347 阅读 · 0 评论 -
二叉树的最大深度
题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。您在真实的面试中是否遇到过这个题? Yes样例给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5这个二叉树的最大深度为3.思路:一开始先定义两个整数值lheight=0,rheight=0;原创 2017-04-23 17:55:06 · 236 阅读 · 0 评论 -
二叉树的最小深度
题目:给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。您在真实的面试中是否遇到过这个题? Yes样例给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最小深度原创 2017-04-23 17:54:29 · 373 阅读 · 0 评论 -
克隆二叉树
题目:深度复制一个二叉树。给定一个二叉树,返回一个他的 克隆品 。您在真实的面试中是否遇到过这个题? Yes样例给定一个二叉树: 1 / \ 2 3 / \4 5返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 / \4 5思路:原创 2017-04-23 17:49:44 · 248 阅读 · 0 评论 -
将排序数组转换为高度最小的二叉搜索树
题目:给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。 注意事项There may exist multiple valid solutions, return any of them.您在真实的面试中是否遇到过这个题? Yes样例给出数组 [1,2,3,4,5,6,7], 返回原创 2017-04-23 17:41:55 · 274 阅读 · 0 评论 -
子树
题目:有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。 注意事项若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在 T1 节点 n 处将树砍断,砍断的部分将与 T2 完全相同。您在真实的面试中是否遇到过这个题?原创 2017-04-23 17:36:56 · 309 阅读 · 0 评论 -
翻转二叉树
题目:翻转一棵二叉树您在真实的面试中是否遇到过这个题? Yes样例 1 1 / \ / \2 3 => 3 2 / \ 4 4思路:先交换左右子树,然后使用递归。代码:/** * Definition of TreeNod原创 2017-04-23 17:36:18 · 230 阅读 · 0 评论 -
将二叉树拆成链表
题目:将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。 注意事项不要忘记将左儿子标记为 null,否则你可能会得到空间溢出或是时间溢出。您在真实的面试中是否遇到过这个题? Yes样例 1原创 2017-04-23 17:27:21 · 217 阅读 · 0 评论 -
等价二叉树
题目:检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。您在真实的面试中是否遇到过这个题? Yes样例 1 1 / \ / \ 2 2 and 2 2 / /4原创 2017-04-23 17:25:59 · 225 阅读 · 0 评论 -
二叉树的所有路径
题目:给一棵二叉树,找出从根节点到叶子节点的所有路径。您在真实的面试中是否遇到过这个题? Yes样例给出下面这棵二叉树: 1 / \2 3 \ 5所有根到叶子的路径为:[ "1->2->5", "1->3"]思路:这个题使用了引用,方便了很多,这道题也又写了一个原创 2017-04-23 17:23:24 · 201 阅读 · 0 评论 -
二叉树的路径和
题目:给一棵二叉树,找出从根节点到叶子节点的所有路径。您在真实的面试中是否遇到过这个题? Yes样例给出下面这棵二叉树: 1 / \2 3 \ 5所有根到叶子的路径为:[ "1->2->5", "1->3"]思路:这个和后边那个二叉树的所有路径稍有不同,就是在找出路原创 2017-04-23 17:00:47 · 221 阅读 · 0 评论 -
二叉树之层次遍历
题目:给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)您在真实的面试中是否遇到过这个题? Yes样例给一棵二叉树 {3,9,20,#,#,15,7} : 3 / \9 20 / \ 15 7返回他的分层遍历结果:[ [3], [9,20], [15,7]]思原创 2017-04-19 18:16:49 · 229 阅读 · 0 评论 -
二叉树之后序遍历
题目:给出一棵二叉树,返回其节点值的后序遍历。您在真实的面试中是否遇到过这个题? Yes样例给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [3,2,1]思路:在函数之前定义向量ss,在函数里直接使用递归算法。代码:/** * Definition原创 2017-04-19 18:12:11 · 253 阅读 · 0 评论 -
二叉树之中序遍历
题目:给出一棵二叉树,返回其中序遍历您在真实的面试中是否遇到过这个题? Yes样例给出二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [1,3,2].思路:这道题和前序遍历几乎没什么不同,只是修改了ss.push_back(s[top]->val);的位置。代码:/原创 2017-04-19 18:11:01 · 300 阅读 · 0 评论 -
在二叉查找树中插入节点
题目:给定一棵二叉查找树和一个新的树节点,将节点插入到树中。你需要保证该树仍然是一棵二叉查找树。 注意事项You can assume there is no duplicate values in this tree + node.您在真实的面试中是否遇到过这个题? Yes样例给出如下一棵二叉查找树,原创 2017-05-21 14:26:10 · 302 阅读 · 0 评论