【leetcode】110 判断一棵二叉树是否平衡二叉树

在不熟悉递归的情况下,用了两次递归来完成该题,做一纪念

{

{//解决过程两次用到递归,完美、快速地解决了这道题;首先一个求高度的函数这个函数要用到递归;之后在主函数里面,比较两个子树的高度差,如果二者平衡,也要继续分别递归二者;public: bool isBalanced(TreeNode* root) { if (root == NULL) return true; int delta = abs(TreeHeight(root->left) – TreeHeight(root->right)); if (delta>1) return false; else return (isBalanced(root->left) && isBalanced(root->right)); } private: // 计算以root为根节点的树的高度,用递归 int TreeHeight(TreeNode* root) { if (root == NULL) return -1; else if(!root->left && !root->right) return 0; else return 1+max(TreeHeight(root->left), TreeHeight(root->right)); } };

    原文作者:平衡二叉树
    原文地址: https://blog.csdn.net/lengxiaohe/article/details/80331369
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞