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

本文共 1485 字,大约阅读时间需要 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.

判断左右子树的高度相差是否大于1. 

树的高度取决于左右子树的高度的最大值。

1 /** 2  * Definition for binary tree 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 getLayer(root, 1) != -1;14     }15     16     int getLayer(TreeNode *root, int layer) {17         if (root == NULL) return layer;18         int l = getLayer(root->left, layer + 1);19         if (l == -1) return -1;20         int r = getLayer(root->right, layer + 1);21         if (r == -1) return -1;22         if (abs(l - r) > 1) return -1;23         return l > r ? l : r;24     }25 };

 3-rd try:

1 class Solution { 2 public: 3     bool isBalanced(TreeNode *root) { 4        int height = 0; 5        return recurse(root, height); 6     } 7      8     bool recurse(TreeNode *root, int &height) { 9         if (root == NULL) return true;10         int lheight = 0, rheight = 0;11         if (!recurse(root->left, lheight) || !recurse(root->right, rheight)) return false;12         height = 1 + (lheight > rheight ? lheight : rheight);13         return abs(lheight - rheight) <= 1;14     }15 };

 

转载于:https://www.cnblogs.com/linyx/p/3782606.html

你可能感兴趣的文章
CentOS7 重置root密码
查看>>
博客作业四
查看>>
Scanner 输入---从键盘输入两个数进行相加
查看>>
test
查看>>
说无可说
查看>>
mysql 语句优化
查看>>
SCP 命令参数使用详解(最详细使用指南)
查看>>
windows cmd color setup
查看>>
一些问题
查看>>
ubuntu配置cudnn
查看>>
P1242 新汉诺塔 && UVA10795 A Different Task
查看>>
从零开始学习PYTHON3讲义(十一)计算器升级啦
查看>>
从零开始学习PYTHON3讲义(三)写第一个程序
查看>>
WebGis设计模式
查看>>
cocos2dx ScrollView 测试一 触摸事件优先级和自动调整
查看>>
django 使用mysql数据库的流程
查看>>
Android系统移植与调试之------->如何修改Android设备的默认休眠时间
查看>>
我的Android进阶之旅------>Java文件大小转换工具类 (B,KB,MB,GB,TB,PB之间的大小转换)...
查看>>
uboot 传递的参数 mtdparts
查看>>
六种排序算法C语言版(上)
查看>>