一.判断一颗二叉树是否为平衡二叉树 题目:输入一颗二叉树的根节点,判断该二叉树是否为平衡二叉树。所谓的平衡二叉树是指以当前结点为根结点的树,左右子树的深度不得超过1。 例如: 解决思路一:按照前序遍历的路线判断。 1.判断以根结点的树是否为二叉平衡树。求出左右子树的高度,判断它们的高度差是否超过了1。 2.递归判断根的左子树是否为平衡二叉树 3.递归判断根的右子树是否为平衡二叉树 注意:空树也是平衡二叉树 代码实现: //二叉树的高度(比较左右子树那个高,高的加1既为二叉树的高度) int BinaryTreeHi…

2018年9月17日 0条评论 5点热度 阅读全文

题目:输入两棵二叉树A和B,判断B是不是A的子结构。 和链表相比,树中的指针更多更复杂,所以需要格外的小心! 实例如下: 判断A树中是否包含B树。具体方法是先遍历A树,看A树中是否有B树的根结点。如果有再看该结点是否含有和B树一样的结构!如果没有特殊的要求,我们一般采用递归的方式实现。 具体实现代码如下: #include <iostream> using namespace std; struct Binarytree { int data; Binarytree *pLeft; Binarytree…

2016年6月7日 0条评论 1点热度 阅读全文