本篇文章主要介绍了"判断二叉树是不是平衡二叉树",主要涉及到方面的内容,对于C/C++jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
1.问题描述输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。2.分析我们可以采用...
1.问题描述
输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。
2.分析
我们可以采用后续遍历,在遍历根结点之前就可以得到左右子树的深度及是不是一颗平衡二叉树。然后在根据左右子树的深度差值来判断这棵树是不是一棵平衡二叉树。
3.代码
int IsBalanced(TreeNode* head,int* depth)
{
if (head == NULL)
{
*depth = 0;
return 1;
}
int left;
int right;
if (IsBalanced(head->lChild,&left) && IsBalanced(head->rChild,&right))
{
int diff = left - right;
if (diff <= 1 || diff >= -1)
{
*depth = left > right ? left + 1 : right + 1;
return 1;
}
}
return 0;
}
以上就介绍了判断二叉树是不是平衡二叉树,包括了方面的内容,希望对C/C++jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_110686.html