![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
文章平均质量分 66
cqkmath2
这个作者很懒,什么都没留下…
展开
-
等价二叉树
问题描述:检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。样例: 1 1 / \ / \ 2 2 and 2 2 / /4 4就是两棵等价的二叉树。 1原创 2017-04-20 11:12:50 · 172 阅读 · 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 BST原创 2017-05-20 22:26:59 · 105 阅读 · 0 评论 -
二叉树总结
感想:二叉树主要利用遍历的思想,将各种功能得用遍历结合在一起实现。原创 2017-04-21 22:43:00 · 106 阅读 · 0 评论 -
把排序数组转换为高度最小的二叉搜索树
问题描述:给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。样例:给出数组 [1,2,3,4,5,6,7], 返回 4 / \ 2 6 / \ / \1 3 5 7解题思路:用二分法将数组二分,递归构建一棵树,这样能保证深度最小。代码:/** * Definition of TreeN原创 2017-04-21 22:35:40 · 125 阅读 · 0 评论 -
二叉树的层次遍历
问题描述:给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)样例:给一棵二叉树 {3,9,20,#,#,15,7} : 3 / \9 20 / \ 15 7返回他的分层遍历结果:[ [3], [9,20], [15,7]]解题思路:用两个队列交替使用存储,将根节点放在队列0里,然后用循环取出来将孩子放在原创 2017-04-20 16:53:42 · 154 阅读 · 0 评论 -
克隆二叉树
问题描述:深度复制一个二叉树。给定一个二叉树,返回一个他的 克隆品 样例:给定一个二叉树: 1 / \ 2 3 / \4 5返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 / \4 5解题思路:定义一个根节点,对给定二叉树遍历,同时这个二叉树也跟着遍历原创 2017-04-20 16:36:58 · 234 阅读 · 0 评论 -
二叉树的最大节点
问题描述:在二叉树中寻找值最大的节点并返回。样例:给出如下一棵二叉树: 1 / \ -5 2 / \ / \0 3 -4 -5 返回值为 3 的节点。解题思路:用一个全局变量来存储最大值,然后遍历一次每次碰到比全局变量大的值,将该值赋值给全局变量。代码:class Solution {pu原创 2017-04-20 10:27:21 · 230 阅读 · 0 评论 -
二叉树的前序遍历
问题描述:给出一棵二叉树,返回其节点值的前序遍历。样例:给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,2,3].解题思路:定义一个向量变量,然后用递归的方式调用前序遍历函数,将每次访问的节点值都加在向量变量里。代码:/** * Definition of TreeNode:原创 2017-04-20 10:33:43 · 252 阅读 · 0 评论 -
二叉树的中序遍历
问题描述:给出一棵二叉树,返回其中序遍历样例:给出二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [1,3,2].解题思路:跟前序遍历遍历基本一样只不过先遍历做子树再遍历根节点,最后遍历右子树。代码:/** * Definition of TreeNode: * class TreeNode原创 2017-04-20 10:38:21 · 172 阅读 · 0 评论 -
二叉树的后序遍历
问题描述:给出一棵二叉树,返回其节点值的后序遍历。样例:给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [3,2,1]解题思路:利用后续遍历的递归,将每个结点存储在数组里。代码:/** * Definition of TreeNode: * class TreeNode { * p原创 2017-04-20 10:42:00 · 132 阅读 · 0 评论 -
二叉树的最大深度
问题描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。样例:给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5这个二叉树的最大深度为3.解题思路:通过遍历找到根节点到叶子姐结点的每一条路径,并求出它们的长度,用一个变量来存储,记录最大长度,当有更大的时候便存起来。原创 2017-04-20 10:48:04 · 122 阅读 · 0 评论 -
二叉树的最小深度
问题描述:给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。样例:给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最小深度为 2标签 解题思路:每一次找到原创 2017-04-20 10:49:09 · 129 阅读 · 0 评论 -
翻转二叉树
问题描述:翻转一棵二叉树样例: 1 1 / \ / \2 3 => 3 2 / \ 4 4解题思路:前序遍历先找到叶子结点,从叶子节点开始往上回溯,每个结点的左子树和右子树交换。代码:/** * Definition of TreeNode: * class Tree原创 2017-04-20 11:00:51 · 157 阅读 · 0 评论 -
将二叉树拆成链表
问题描述:将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。样例: 1 \ 1 2 / \ \ 2 5 => 3 / \ \ \ 3 4原创 2017-04-20 11:02:14 · 121 阅读 · 0 评论 -
子树
问题描述:有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为T1的子树。样例:下面的例子中 T2 是 T1 的子树: 1 3 / \ / T1 = 2 3 T2 = 4 / 4原创 2017-04-20 11:07:43 · 148 阅读 · 0 评论 -
在二叉查找树中插入节点
问题描述:给定一棵二叉查找树和一个新的树节点,将节点插入到树中。你需要保证该树仍然是一棵二叉查找树。样例:给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的: 2 2 / \ / \1 4 --> 1 4 / / \ 3原创 2017-05-20 22:32:01 · 202 阅读 · 0 评论