博客
关于我
leetcode-判断平衡二叉树-34
阅读量:276 次
发布时间:2019-03-01

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

题目要求

  给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。

思路

  这个题的思路和判断二叉树的最大深度类似,我们需要求出左子树和右子树中最大的那个,在那个基础上加一,两个子数的深度差的绝对值小于2。

图解

在这里插入图片描述

代码实现

int max(int x, int y){	return x > y ? x : y;}int maxDepth(struct TreeNode* root){	if (root == NULL)	{		return 0;	}	return max(maxDepth(root->left), maxDepth(root->right)) + 1;}bool isBalanced(struct TreeNode* root){	if (root == NULL)	{		return true;	}	int leftDepth = maxDepth(root->left);	int rightDepth = maxDepth(root->right);	return abs(leftDepth - rightDepth) < 2 && isBalanced(root->left) && isBalanced(root->right);}

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

你可能感兴趣的文章
Netty工作笔记0046---异步模型原理剖析
查看>>
Netty工作笔记0047---Http服务程序实例
查看>>
Netty工作笔记0048---Http服务过滤资源
查看>>
Netty工作笔记0049---阶段内容梳理
查看>>
Netty工作笔记0050---Netty核心模块1
查看>>
Netty工作笔记0051---Netty核心模块2
查看>>
Netty工作笔记0052---Pipeline组件剖析
查看>>
Netty工作笔记0053---Netty核心模块梳理
查看>>
Netty工作笔记0054---EventLoop组件
查看>>
Netty工作笔记0055---Unpooled应用实例1
查看>>
Netty工作笔记0056---Unpooled应用实例2
查看>>
Netty工作笔记0057---Netty群聊系统服务端
查看>>
Netty工作笔记0058---Netty群聊系统客户端
查看>>
Netty工作笔记0059---Netty私聊实现思路
查看>>
Netty工作笔记0060---Netty心跳机制实例
查看>>
Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接
查看>>
Netty工作笔记0061---Netty心跳处理器编写
查看>>
Netty工作笔记0062---WebSocket长连接开发
查看>>
Netty工作笔记0063---WebSocket长连接开发2
查看>>
vue样式穿透 ::v-deep的具体使用
查看>>