对二叉树有困惑的判断平衡小伙伴可以看一下我之前的文章:
二叉树(一)_染柒_GRQ的博客-CSDN博客
二叉树(二)_染柒_GRQ的博客-CSDN博客
二叉树(三)_染柒_GRQ的博客-CSDN博客
点击上方链接即可查看。
110. 平衡二叉树 - 力扣(LeetCode)
首先我们要注意到,该题的判断平衡意思是所有节点的高度差不超过一,而不是只有根节点的高度差不超过一,例如:
错误示例
上图显然不符合题目要求 。
那么我们再来思考一下,如果树为空的判断平衡情况,显然是符合题目要求的。
根据上面的判断平衡意思,转换为代码就是这样:
bool isBalanced(struct TreeNode* root){if(root == NULL){return true;}}
但是这样显然不够,只是判断了树为空的情况。
那么我们在树非空的判断平衡情况下要想判断是否为平衡树,最好的方法是写一个计算树深度的函数。
我找到一个题目专门计算深度的判断平衡,感兴趣的可以看一下哦!
题目:104. 二叉树的最大深度 - 力扣(LeetCode)
那么我们把计算深度的函数解决了,就顺便解决了上题