判断一棵树是不是平衡二叉树

题目描述

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 ofeverynode never differ by more than 1.

我的思路:采用最笨的办法,递归的判断一棵树的左子树和右子树分别是不是平衡二叉树。


/**

* Definition for binary tree

* public class TreeNode {

*    int val;

*    TreeNode left;

*    TreeNode right;

*    TreeNode(int x) { val = x; }

* }

*/

public class Solution {

public boolean isBalanced(TreeNode root) {

if (root == null)

return true;

int ldepth = height(root.left);

int rdepth = height(root.right);

if (Math.abs(ldepth - rdepth) > 1)

return false;

boolean ltree = isBalanced(root.left);

boolean rtree = isBalanced(root.right);

return ltree & rtree;

}

public int height(TreeNode node){

if (node == null)

return 0;

int ldepth = height(node.left);

int rdepth = height(node.right);

return ldepth > rdepth?ldepth + 1:rdepth + 1;

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容