ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

110. 平衡二叉树

2021-11-20 11:30:31  阅读:135  来源: 互联网

标签:rightHeight 遍历 return cur getHeight 二叉树 leftHeight 平衡 110


  • 思路
    计算左右子树的高度差,使用后续遍历计算输的高度,(前序遍历计算树的深度)
    int getHeight(TreeNode* cur)//获取二叉树的高度
    {
        if(cur == nullptr)
        {
            return 0;
        }

        int leftHeight = getHeight(cur->left);//左
        if(leftHeight == -1)
        {
            return -1;
        }

        int rightHeight = getHeight(cur->right);//右
        if(rightHeight == -1)
        {
            return -1;
        }

        if(abs(leftHeight - rightHeight) > 1)//计算左右两节点高度差
        {
            return -1;
        }
        else
        {
            return 1 + max(leftHeight, rightHeight);
        }
    }    
    bool isBalanced(TreeNode* root) 
    {
        return getHeight(root) == -1 ? false : true;//计算二叉树的深度,用前序遍历,高度则用后序遍历
    }```
参考:
https://programmercarl.com/0110.%E5%B9%B3%E8%A1%A1%E4%BA%8C%E5%8F%89%E6%A0%91.html#%E9%80%92%E5%BD%92

标签:rightHeight,遍历,return,cur,getHeight,二叉树,leftHeight,平衡,110
来源: https://blog.csdn.net/qq_43287931/article/details/121436804

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有