博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Balanced Binary Tree
阅读量:6454 次
发布时间:2019-06-23

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

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.

 

C++实现代码:

#include
#include
#include
#include
using namespace std;//Definition for binary treestruct 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 lhigh=maxDepth(root->left); int rhigh=maxDepth(root->right); if(abs(lhigh-rhigh)>1) return false; return isBalanced(root->left)&&isBalanced(root->right); } int maxDepth(TreeNode *root) { if(root) { if(root->left==NULL&&root->right==NULL) return 1; int leftDepth=maxDepth(root->left); int rightDepth=maxDepth(root->right); return leftDepth>= rightDepth ?(leftDepth+1):(rightDepth+1); } return 0; } void createTree(TreeNode *&root) { int i; cin>>i; if(i!=0) { root=new TreeNode(i); if(root==NULL) return; createTree(root->left); createTree(root->right); } }};int main(){ Solution s; TreeNode *root; s.createTree(root); cout<

 

转载地址:http://hoyzo.baihongyu.com/

你可能感兴趣的文章
<JavaScript>语法
查看>>
shell的执行顺序问题
查看>>
请教:.net实体框架中有外键关系数据表的数据显示
查看>>
WCF快速上手(二)
查看>>
SQL 常用的命令
查看>>
C++运算符优先级表
查看>>
Django学了2个月了,没有什么进展,但是不放弃!
查看>>
编译hadoop版的hello,world
查看>>
窗体控件应用总结(1)
查看>>
OpenStack提交代码的review流程
查看>>
mac book下批量替换多个文件中的字符
查看>>
币氪深度|别让项目方搬起ETF的石头,砸了你的脚
查看>>
Run as ant build每次都执行两次
查看>>
自己的TableDataEntity、手工代码绑定实体、反射绑定实体性能对比
查看>>
apk动态调试
查看>>
sql 语句整理
查看>>
POJ1389:Area of Simple Polygons——扫描线线段树题解+全套代码注释
查看>>
BZOJ1911:[Apio2010]特别行动队——题解
查看>>
14:开发脚本入侵检测与报警案例
查看>>
python 重要模块
查看>>