平衡二叉树(后序遍历,力扣110)

解题思路:采取后序遍历的好处是先遍历节点得到高度,然后再判断高度差是否大于一,如果是的话就返回-1,不是就返回两高度中较大的高度加一就是父节点的高度

具体代码如下:

class Solution {

public:

    int travel(TreeNode*root){

        if(root==NULL)return 0;

        int lefthigh=travel(root->left);

        if(lefthigh==-1)return -1;

        int righthigh=travel(root->right);

        if(righthigh==-1)return -1;

        int result;

        if(abs(righthigh-lefthigh)>1)result=-1;

         else{

            return result=1+max(righthigh,lefthigh);

         }return result;

    };

    bool isBalanced(TreeNode* root) {

       int a=travel(root);

       if(a==-1)return false;

       else return true;

    }

};

原题如下:

给定一个二叉树,判断它是否是 

平衡二叉树

  

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:true

示例 2:

输入:root = [1,2,2,3,3,null,null,4,4]
输出:false

示例 3:

输入:root = []
输出:true

提示:

  • 树中的节点数在范围 [0, 5000] 内
  • -104 <= Node.val <= 104

相关推荐

  1. 每日一题】145

    2024-04-20 14:10:06       38 阅读
  2. 从中序列构造-

    2024-04-20 14:10:06       6 阅读
  3. 的前-

    2024-04-20 14:10:06       8 阅读
  4. 的中-

    2024-04-20 14:10:06       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-20 14:10:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-20 14:10:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-20 14:10:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-20 14:10:06       18 阅读

热门阅读

  1. 微服务中Dubbo通俗易懂讲解及代码实现

    2024-04-20 14:10:06       11 阅读
  2. 介绍TCP窗口

    2024-04-20 14:10:06       12 阅读
  3. 简单了解Vue3

    2024-04-20 14:10:06       12 阅读
  4. 注册中心~

    2024-04-20 14:10:06       14 阅读
  5. 【Python】上下文管理协议__enter__和__exit__函数

    2024-04-20 14:10:06       13 阅读
  6. Stylus入门使用方法

    2024-04-20 14:10:06       13 阅读
  7. MySQL分析全表扫描原因

    2024-04-20 14:10:06       14 阅读
  8. 为什么单线程的redis的效率这么高?

    2024-04-20 14:10:06       12 阅读
  9. 为什么要注册缅甸公司

    2024-04-20 14:10:06       14 阅读