博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
careercup-树与图 4.1
阅读量:5837 次
发布时间:2019-06-18

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

4.1 实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个结点,其两颗子树的高度差不超过1.

 

C++实现代码:

#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) {}};void createTree(TreeNode *&root){ int i; cin>>i; if(i!=0) { TreeNode *tmp=new TreeNode(i); root=tmp; createTree(root->left); createTree(root->right); }}int high(TreeNode *root){ if(root==NULL) return 0; if(root->left==NULL&&root->right) return 1; int lhigh=high(root->left); int rhigh=high(root->right); return (lhigh>=rhigh)?lhigh+1:rhigh+1;}bool isAVL(TreeNode *root){ if(root==NULL) return true; if(root->left==NULL&&root->right==NULL) return true; int lhigh=high(root->left); int rhigh=high(root->right); if(abs(lhigh-rhigh)<2) return isAVL(root->left)&&isAVL(root->right); return false;}int main(){ TreeNode *root=NULL; createTree(root); cout<
<

 

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

你可能感兴趣的文章
HTM5基础系列(一)---简介与HTML4与HTML5的区别
查看>>
Hbase快速开始——shell操作
查看>>
WireShark 过滤语法
查看>>
linux删除文件后没有释放空间
查看>>
redis 内存管理分析
查看>>
Sharding-JDBC 最大努力型事务理解
查看>>
扩展segment数量
查看>>
Cisco 交换机端口安全
查看>>
cv.Mat 与 .txt 格式文件读写操作
查看>>
JavaScript事件练习
查看>>
vs2010的11个调试技巧和方法
查看>>
关于k-means聚类算法的matlab实现
查看>>
Git分支2
查看>>
在域环境下禁用USB存储设备的方法
查看>>
一键安装Gitlab后的备份、迁移与恢复
查看>>
因为本人工作繁忙,精力有限,本博客停止更新。有兴趣的博友可以关注我在CSDN上的主博客...
查看>>
Node实现静态服务器
查看>>
lsa声卡/dev/snd/pcmC0D0p的open打开流程
查看>>
浅谈什么是正向代理和反向代理,如何使用nginx搭建正向代理和反向代理
查看>>
转 通过phpize为php在不重新编译php情况下安装模块openssl
查看>>