二叉树
Lee丶0767
这个作者很懒,什么都没留下…
展开
-
LintCode 二叉树的最大节点
题目描述:在二叉树中寻找值最大的节点并返回。样例 给出如下一棵二叉树:1 / \ -5 2 / \ / \ 0 3 -4 -5 返回值为 3 的节点。思路分析:遍历一遍记录最大值。ac代码:class Solution {public: /** * @param root the root of binary tree *原创 2017-04-08 21:20:18 · 1961 阅读 · 0 评论 -
LintCode 在二叉查找树中插入节点
题目描述: 给定一棵二叉查找树和一个新的树节点,将节点插入到树中。你需要保证该树仍然是一棵二叉查找树。注意事项You can assume there is no duplicate values in this tree + node.您在真实的面试中是否遇到过这个题? Yes 样例 给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的:2 2 /原创 2017-05-21 19:05:05 · 239 阅读 · 0 评论 -
LintCode 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 BST.您在原创 2017-05-21 19:03:39 · 208 阅读 · 0 评论 -
LintCode 子树
题目描述:有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。注意事项若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在 T1 节点 n 处将树砍断,砍断的部分将与 T2 完全相同。您在真实的面试中是否遇到过这个题? Yes 样例 下面的例子中 T2 是 T1 的子树:原创 2017-04-10 22:16:19 · 318 阅读 · 0 评论 -
LintCode 把排序数组转换为高度最小的二叉搜索树
题目描述: 给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。注意事项There may exist multiple valid solutions, return any of them.您在真实的面试中是否遇到过这个题? Yes 样例 给出数组 [1,2,3,4,5,6,7], 返回4 / \ 2 6 / \ / \ 1 3 5原创 2017-04-10 22:15:22 · 318 阅读 · 1 评论 -
LintCode 将二叉树拆成链表
题目描述: 将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。注意事项不要忘记将左儿子标记为 null,否则你可能会得到空间溢出或是时间溢出。您在真实的面试中是否遇到过这个题? Yes 样例 1 \ 1 2 / \原创 2017-04-10 22:14:25 · 268 阅读 · 0 评论 -
LIntCode 等价二叉树
题目描述: 检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。您在真实的面试中是否遇到过这个题? Yes 样例 1 1 / \ / \ 2 2 and 2 2 / / 4 4 就是两棵等价的二叉树原创 2017-04-10 22:13:07 · 495 阅读 · 0 评论 -
LintCode 克隆二叉树
题目描述: 深度复制一个二叉树。给定一个二叉树,返回一个他的 克隆品 。您在真实的面试中是否遇到过这个题? Yes 样例 给定一个二叉树:1 / \ 2 3 / \ 4 5 返回其相同结构相同数值的克隆二叉树:1 / \ 2 3 / \ 4 5思路分析:dfsac代码:/** * Definition of TreeNode:原创 2017-04-10 22:11:50 · 223 阅读 · 0 评论 -
LintCode 平衡二叉树
题目描述: 给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。 您在真实的面试中是否遇到过这个题? Yes 样例 给出二叉树 A={3,9,20,#,#,15,7}, B={3,#,20,15,7}二叉树A是高度平衡的二叉树,但是B不是。思路分析:遍历每个结点的左右子树。判断深度差的绝对值。ac代码:/** *原创 2017-04-10 22:10:06 · 503 阅读 · 0 评论 -
LintCode 翻转二叉树
题目描述: 翻转一棵二叉树您在真实的面试中是否遇到过这个题? Yes 样例 1 1 / \ / \ 2 3 => 3 2 / \ 4 4思路分析:交换左右子树。ac代码:/** * Definition of TreeNode: * class TreeNode { * public: *原创 2017-04-10 22:07:26 · 448 阅读 · 0 评论 -
LintCode 二叉树的路径和
题目描述: 给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。一个有效的路径,指的是从根节点到叶节点的路径。您在真实的面试中是否遇到过这个题? Yes 样例 给定一个二叉树,和 目标值 = 5:1 / \ 2 4 / \ 2 3 返回:[ [1, 2, 2], [1, 4] ]思路分析:dfs记录4个参数。 当前节点。原创 2017-04-10 22:06:01 · 304 阅读 · 0 评论 -
LintCode 二叉树的最小深度
题目描述:给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。 您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵如下的二叉树:1/ \ 2 3/ \4 5 这个二叉树的最小深度为 2思路分析:和最大深度的题一样。ac代码:/** * Definition of TreeNode: * class TreeNode {原创 2017-04-08 21:32:34 · 205 阅读 · 0 评论 -
LintCode 二叉树的最大深度
题目描述: 定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵如下的二叉树:1 / \ 2 3 / \ 4 5 这个二叉树的最大深度为3.思路分析:还是dfs 每次到叶子节点的时候,判断深度。ac代码:/** * Definition of TreeNode: * class T原创 2017-04-08 21:31:26 · 221 阅读 · 0 评论 -
LintCode 二叉树的前序遍历
题目描述:给出一棵二叉树,返回其节点值的前序遍历。您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵二叉树 {1,#,2,3},1 \ 2 / 3 返回 [1,2,3].思路分析: dfsac代码:/** * Definition of TreeNode: * class TreeNode { * public: * int原创 2017-04-08 21:29:00 · 340 阅读 · 0 评论 -
LintCode 二叉树的后序遍历
题目描述:给出一棵二叉树,返回其节点值的后序遍历。您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵二叉树 {1,#,2,3},1 \ 2 / 3 返回 [3,2,1]思路分析: dfs。ac代码:/** * Definition of TreeNode: * class TreeNode { * public: * int v原创 2017-04-08 21:28:16 · 288 阅读 · 0 评论 -
LintCode 二叉树的所有路径
题目描述: 给一棵二叉树,找出从根节点到叶子节点的所有路径。您在真实的面试中是否遇到过这个题? Yes 样例 给出下面这棵二叉树:1 / \ 2 3 \ 5 所有根到叶子的路径为:[ “1->2->5”, “1->3” ]思路分析:dfs记录路径。 当一个节点的左右子树都为NULL的时候,就代表该节点为叶子节点。此时将string 插入到vecto原创 2017-04-08 21:27:24 · 280 阅读 · 0 评论 -
LintCode 二叉树的层次遍历
题目描述:给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)您在真实的面试中是否遇到过这个题? Yes 样例 给一棵二叉树 {3,9,20,#,#,15,7} :3 / \ 9 20 / \ 15 7 返回他的分层遍历结果:[ [3], [9,20], [15,7] ]思路分析:bfs遍历。ac代码:/** * Definition of原创 2017-04-08 21:24:47 · 362 阅读 · 0 评论 -
LintCode 二叉树的中序遍历
题目描述: 给出一棵二叉树,返回其中序遍历您在真实的面试中是否遇到过这个题? Yes 样例 给出二叉树 {1,#,2,3},1 \ 2 / 3 返回 [1,3,2].思路分析:dfs遍历。ac代码:/** * Definition of TreeNode: * class TreeNode { * public: * int val;原创 2017-04-08 21:23:33 · 385 阅读 · 0 评论 -
Lint Code 二叉树中的最大路径和
题目描述: 给出一棵二叉树,寻找一条路径使其路径和最大,路径可以在任一节点中开始和结束(路径和为两个节点之间所在路径上的节点权值之和)您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵二叉树: 1 / \ 2 3返回 6ac代码:/** * Definition of TreeNode: * class TreeNode { * public: * in原创 2017-09-04 23:14:05 · 452 阅读 · 0 评论