六安网站优化,网页美工设计视频,定制科技软件,网页制作成品网站给定一个二叉树#xff0c;判断它是否是高度平衡的二叉树。
本题中#xff0c;一棵高度平衡二叉树定义为#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 思路一#xff1a;递归
int height(struct TreeNode* root) {if (root NULL) {return…给定一个二叉树判断它是否是高度平衡的二叉树。
本题中一棵高度平衡二叉树定义为 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 思路一递归
int height(struct TreeNode* root) {if (root NULL) {return 0;} else {return fmax(height(root-left), height(root-right)) 1;}
}bool isBalanced(struct TreeNode* root) {if (root NULL) {return true;} else {return fabs(height(root-left) - height(root-right)) 1 isBalanced(root-left) isBalanced(root-right);}
} 分析
本题要判断是否为平衡二叉树利用height函数求得二叉树左右子树深度值再递归判断两个子树高度差是否大于一得到答案
总结
本题为对二叉树高度差的操作理清左右子树关系利用递归即可得到答案