二叉树
文章平均质量分 62
pzx1997
这个作者很懒,什么都没留下…
展开
-
Convert BST to Greater Tree
题目: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 gr原创 2017-05-11 17:50:24 · 145 阅读 · 0 评论 -
二叉树的中序遍历
题目:二叉树的中序遍历问题描述:给出一棵二叉树,返回其中序遍历。思路:用递归的思想,按先跟后左子树最后右子树的方式将节点的值一个个存到vector容器里。代码:class Solution { vector r; /** * @param root: The root of binary tree. * @re原创 2017-04-09 18:41:00 · 268 阅读 · 0 评论 -
二叉树的后序遍历
题目:二叉树的后续遍历问题描述:给出一棵二叉树,返回其节点值的后序遍历。思路:用递归的思想,按先左子树后右子树最后跟的方式将节点的值一个个存到vector容器里。代码:class Solution { vector r; /** * @param root: The root of binary tree. * @原创 2017-04-09 18:45:30 · 185 阅读 · 0 评论 -
二叉树的前序遍历
题目:二叉树的前序遍历问题描述:给出一棵二叉树,返回其节点值的前序遍历。思路:用递归的思想,按先跟后左子树最后右子树的方式将节点的值一个个存到vector容器里。代码:class Solution {public: vector r; /** * @param root: The root of binary tree.原创 2017-04-09 18:37:00 · 200 阅读 · 0 评论 -
克隆二叉树
题目:克隆二叉树问题描述:给定一棵二叉树,返回一个他的克隆品。思路:申请一个新的根节点,把原来根节点赋给它,使原先的左子树等于新根的左子树,原先的右子树等于新根的右子树。代码:class Solution {public: /** * @param root: The root of binary tree * @原创 2017-04-09 20:52:40 · 161 阅读 · 0 评论 -
二叉树的最小深度
题目:二叉树的最小深度问题描述:给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。思路:递归函数,返回左右子树的递归结果中的较小值,但是如果结果是0,则返回一个较大数。代码:class Solution {public: /** * @param root: The root of binary tree原创 2017-04-11 17:06:24 · 209 阅读 · 0 评论 -
翻转二叉树
题目:翻转二叉树问题描述:翻转一棵二叉树。思路:如果跟不为空,则使同一个双亲的左孩子和右孩子调换位置。代码:class Solution {public: /** * @param root: a TreeNode, the root of the binary tree * @return: nothing原创 2017-04-11 17:32:14 · 186 阅读 · 0 评论 -
二叉树的最大节点
题目:二叉树的最大节点问题描述:在二叉树中寻找值最大的节点并返回。思路:定义一个新节点m,初始化它一个极小值,在根节点不为空的情形下,如果根节点的值大于m,就把根节点赋给m,递归,返回m。代码:class Solution {public: TreeNode *m=new TreeNode(-10000); /** * @原创 2017-04-12 21:13:14 · 2130 阅读 · 0 评论 -
等价二叉树
题目:等价二叉树问题描述:检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。思路:当根节点都为空时,两棵二叉树等价,返回1;当一棵树的跟节点为空,另一棵树的根节点不为空时,两棵树一定不等价;当两棵树的根节点都不为空且数值相等时,比较左子树,比较完左子树再比较右子树。代码:class Solutio原创 2017-04-13 17:27:08 · 294 阅读 · 0 评论 -
二叉树的所有路径
题目:二叉树的所有路径问题描述:给一棵二叉树,找出从根节点到叶子节点的所有路径。思路:一般二叉树的问题用递归解决比较简洁。在库文件string中,to_string(int value)是把一个整数转换为字符串;两个字符串使用“+”连接,是字符串的无空格连接。代码:class Solution {public: /** * @par原创 2017-04-18 16:18:43 · 173 阅读 · 0 评论 -
二叉树的路径和
题目:二叉树的路径和问题描述:给定一个二叉树,找出所有路径中各节点相加总和等于给定目标值 的路径。一个有效的路径,指的是从根节点到叶节点的路径。思路:找到和为目标值的路径,输出路径上的元素。代码:class Solution {public: vector>p; /** * @param root the root of原创 2017-04-18 17:38:07 · 223 阅读 · 0 评论 -
将二叉树拆成链表
题目:将二叉树拆成链表问题描述:将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。注意事项:不要忘记将左儿子标记为 null,否则你可能会得到空间溢出或是时间溢出。思路:当根节点或者左右子树为空时,返回空树;当左子树为空时,新建一个右节点赋值原二叉树跟的右孩子,递归下去;当右子树为空时,新建一个左原创 2017-04-20 16:53:48 · 328 阅读 · 0 评论 -
二叉树的层次遍历
题目描述:二叉树的层次遍历问题描述:给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)。思路:使用一个队列实现。用两个计数器,一个记录这一层完全二叉树该有的节点个数,另一个记录这一层缺失的节点个数。代码:class Solution { /** * @param root: The root of binary tree.原创 2017-04-20 17:10:50 · 314 阅读 · 0 评论 -
子树
题目描述:子树问题描述:有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。注意事项:若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在 T1 节点 n 处将树砍断,砍断的部分将与 T2 完全相同。思路:判断一棵树T1是否为另一棵树T2的子树,首先在T1原创 2017-04-22 17:26:57 · 340 阅读 · 0 评论 -
把排序数组转换为高度最小的二叉搜索树
题目描述:把排序数组转换为高度最小的二叉搜索树问题描述:给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。思路:直接采用中间值来作为二叉树的根节点;将原数组分成左右均等或者相差一个数的两个新数组;然后递归的对这两个新数组进行相同的处理。代码:class Solution {public: /** * @param A:原创 2017-04-22 17:42:06 · 254 阅读 · 0 评论 -
二叉树的最大深度
题目:二叉树的最大深度问题描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。思路:如果根节点为空,则深度为0;如果根节点不为0,则分别求左子树的深度和右子树的深度,哪个大输出哪个并加一。代码:class Solution {public: /** * @param root: The root of b原创 2017-04-09 18:29:11 · 261 阅读 · 0 评论