博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode:Balanced Binary Tree(判断是否为二叉平衡树)
阅读量:5742 次
发布时间:2019-06-18

本文共 1827 字,大约阅读时间需要 6 分钟。

Given a binary tree, determine if it is height-balanced.

For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

//两次递归效率不高 合并看leetcode代码

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    bool isBalanced(TreeNode* root) {        if(root==NULL) return true;        int leftDepth=getDepth(root->left);        int rightDepth=getDepth(root->right);        if(abs(leftDepth-rightDepth)>1)             return false;        else            return isBalanced(root->left)&&isBalanced(root->right);            }     //得到树的高度    int getDepth(TreeNode *node)    {        if(node==NULL)            return 0;        int leftDepth=getDepth(node->left);        int rightDepth=getDepth(node->right);        return 1+max(leftDepth,rightDepth);    }};

 

1 /** 2  * Definition for a binary tree node. 3  * struct TreeNode { 4  *     int val; 5  *     TreeNode *left; 6  *     TreeNode *right; 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8  * }; 9  */10 class Solution {11 public:12     bool isBalanced(TreeNode* root) {13         return balancedHeight(root)>=0;14         15     }16     17     //return the height of root if the tree is a balanced tree;18     //otherwise,return -119     int balancedHeight(TreeNode *root)20     {21         if(root==NULL) return 0;22         int left=balancedHeight(root->left);23         int right=balancedHeight(root->right);24         if(left<0||right<0||abs(left-right)>1)25             return -1;26         else27             return max(left,right)+1;28     }29 };

 

转载于:https://www.cnblogs.com/xiaoying1245970347/p/4726454.html

你可能感兴趣的文章
部署mysql集群
查看>>
Centos7.1下安装cobbler
查看>>
wx:for修改样式
查看>>
linux查看网络信息命令
查看>>
Hyper-V 安装Windows 2008,08 R2,12 R2 无网卡驱动的解决办法
查看>>
如何对团队进行绩效考核
查看>>
数学模型
查看>>
java加载properties文件的六种方法总结
查看>>
MyBatis(一)helloWorld程序
查看>>
来自自身的信息——“灵魂暗夜”
查看>>
Zoj1628--Diamond(Dfs《暴力》)
查看>>
基于centos的freeradius高可用lvs(UDP)
查看>>
Codeforces Problem 778B Bitwise Formula
查看>>
达拉草201771010105《面向对象程序设计(java)》第十一周学习总结
查看>>
J2EE规范
查看>>
Java泛型概念
查看>>
矩阵基础
查看>>
【图论算法】Dijstra&BFS
查看>>
【leetcode】962. Maximum Width Ramp
查看>>
python学习day4之路文件的序列化和反序列化
查看>>