题目:判断一颗二叉树是否为BST。 思路:其实这个问题可以有多个解决方法。 方法一:递归解决。根据BST的特性。左边的小于根节点的值,右边的大于根节点的值。并且对于每一棵子树都是如此。所以我们可以直接递归的对左右子树的值与根节点的值进行比较。左子树的值小于当前根节点的值,将当前根节点 ...
方法一,记录子树的上界和下界,root的左子树一定小于root的值,root的右子树一定大于root的值,然后递归左子树和右子树 方法二,中序遍历二叉树,并记录前继节点 ...
2017-04-17 09:40 2 1765 推荐指数:
题目:判断一颗二叉树是否为BST。 思路:其实这个问题可以有多个解决方法。 方法一:递归解决。根据BST的特性。左边的小于根节点的值,右边的大于根节点的值。并且对于每一棵子树都是如此。所以我们可以直接递归的对左右子树的值与根节点的值进行比较。左子树的值小于当前根节点的值,将当前根节点 ...
对于一颗搜索二叉树,最简单的方法就是用中序遍历,看是不是一个递增数列,如果是则是一颗搜索二叉树,如果不是则不是搜索二叉树。在这里用一个lastVisit去记录上一次搜索到的节点。整个过程就是先找到最左下角的节点,更新这个lastVisit为这个节点的值,然后按照中序遍历依次更新即可。代码 ...
题意: 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 返回 true 。示例 2: 给定二叉树 ...
二叉树的深度的概念最值得注意的地方,在于 到"叶子"节点的距离。 一般来说,如果直接说“深度”,都是指最大深度,即最远叶子的距离。 这里放两道例题,最小深度和最大深度。 1. 二叉树的最小深度 Given a binary tree, find its minimum depth. ...
平衡二叉树的判断 如何判断是否为平衡二叉树? 答:每个节点的左右子树高度差的绝对值小于等于1,我们认为该二叉树平衡; 只要有一个节点的左右子树高度差绝对值大于1,我们认为这颗二叉树不平衡。 因此,判断一棵树是否平衡,需要计算树的高度以及判断高度差。 下面介绍两种判断平衡二叉树的方式 ...
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For ...
题目:判断一个二叉排序树是否是平衡二叉树 思路:利用递归判断左右子树的深度是否相差1来判断是否是平衡二叉树。 ...
题目: 给出一个二叉树,判断是否是完全二叉树。 分析:我们都知道完全二叉树是指最后一层左边是满的,右边可能慢也不能不满,然后其余层都是满的,根据这个特性,利用层遍历, 如果我们当前遍历到了NULL结点即叶结点,那么后续如果还有非叶结点,就说明是非完全二叉树,所以利用队列,代码比较简单 ...