https://oj.leetcode.com/problems/balanced-binary-tree/

判断一个二叉树,是否为平衡的。如果是平衡的,则它的每个子树的左右子树高度差不大于1.

递归

但是有两个值,在高层都需要知道。一个是子树是否为二叉树的 bool,一个是子树的高度。所以,一个作为返回值,一个作为引用给传到上面来。

class Solution {
public:
bool isBalanced(TreeNode *root) {
if(root == NULL)
return true;
int p;
return getDepth(root,p);
} bool getDepth(TreeNode *root, int &depth)
{
if(root == NULL)
{
depth = ;
return true;
} if(root->left == NULL && root->right == NULL)
{
depth = ;
return true;
} int l, r;
if(getDepth(root->left, l) == false)
return false;
if(getDepth(root->right, r) == false)
return false; if(abs(l-r)>)
return false;
else
{
//此时,depth需要传到上层去
depth = max(l,r) + ;
return true;
}
}
};

最新文章

  1. MVC5+EF6 入门完整教程十
  2. 1-13 代理ARP和RARP
  3. maven会报Could not transfer artifact xxx错误
  4. Head First 设计模式 --3 装饰者模式 开闭原则
  5. Orchard Platform v1.8 发布
  6. ADODB.Connection 错误 ‘800a0e7a’ 未找到提供程序
  7. Excel操作类
  8. js,replace() 和 正则表达式(regular expression)
  9. js正则表达式之解析——URL的正则表达式
  10. TQ2440开发板网络配置方式
  11. MBProgressHUD not showing
  12. FragmentStatePagerAdapter.notifyDataSetChanged不刷新页面的解决的方法
  13. delphi 回调函数
  14. 菜鸟学习spring IOC有感
  15. 放弃阿里云主机,选择高性价比Vultr VPS免备案
  16. Linux显示一行显示列总计
  17. Java和Flex整合报错(五)
  18. shell脚本学习- 传递参数
  19. css中display:none与visibility: hidden的区别
  20. 加载 AssetBundle 的四种方法

热门文章

  1. python网络-多任务实现之协程(27)
  2. spring boot 设置tomcat post参数限制
  3. ListNode Java创建链表
  4. 笔记-编程-IO模型
  5. Python中函数参数类型和参数绑定
  6. .net core 项目加载提示项目文件不完整缺少预期导入的解决办法
  7. centos使用--vsftpd配置
  8. Robotium接入到Jenkins持续集成自动化测试
  9. Xmanager用法(export DISPLAY=客户端IP:0.0)
  10. jmeter配置分布式调度:远程启动其他机器实现多台pc一起并发