LeetCode之判断高度平衡二叉树
来源:互联网 发布:软件的售后服务承诺 编辑:程序博客网 时间:2024/04/28 00:41
先看问题描述:
/** * 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,就可以认为这个二叉树是高度平衡二叉树。
判断数的高度,自然要用到递归。
public class BalancedBinaryTree { public static boolean isBalanced(TreeNode root) { return determine(root) >= 0 ? true : false; } private static int determine(TreeNode root) { if (root == null) { return 0; } else { int leftDepth = determine(root.left); int rightDepth = determine(root.right); if (leftDepth < 0 || rightDepth < 0|| Math.abs(leftDepth - rightDepth) > 1) return -1; return Math.max(leftDepth, rightDepth) + 1; } } public static void main(String arg[]) { TreeNode r1 = new TreeNode(1); TreeNode r2 = new TreeNode(2); TreeNode r3 = new TreeNode(3); TreeNode r4 = new TreeNode(4); TreeNode r5 = new TreeNode(5); TreeNode r6 = new TreeNode(6); r1.left = r2; r1.right = r3; r2.left = r4; r2.right = r5; r3.right = r6; if(isBalanced(r1)) { System.out.print("is a height-balanced tree"); } else{ System.out.print("is not a height-balanced tree"); } }}
二叉树节点定义:
public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }
上面代码中,determine返回的为正值则表示是高度平衡二叉树。初始化二叉树时简单处理了,比较方便看。
0 0
- LeetCode之判断高度平衡二叉树
- leetcode 判断平衡二叉树
- 【leetcode 二叉树平衡判断】
- leetcode 平衡二叉树判断
- 平衡二叉树计算高度的同时判断是否平衡
- leetcode之判断是否为平衡二叉树
- leetcode-110:判断平衡二叉树 Java
- 判断二叉树是否平衡,计算树的高度
- 【LeetCode笔记】Balanced Binary Tree 高度平衡二叉树
- 【剑指offer】之判断二叉树平衡
- 【Leetcode】判断一棵二叉树是不是平衡二叉树
- LeetCode基础--二叉树-判断二叉树是否平衡
- 判断平衡二叉树
- 判断二叉树平衡
- 平衡二叉树判断
- 判断平衡二叉树
- 判断平衡二叉树
- 平衡二叉树判断
- 主从复制
- 爱游思 » 一些需要禁用的PHP危险函数
- C学习笔记(五)变量与常量
- 五分钟学会 Canvas 基础(一)
- Java Socket编程
- LeetCode之判断高度平衡二叉树
- 【Linux C】容易被忽略的输入和输出
- iOS中代理属性为什么要用Weak修饰?
- mysql中datetime、date、timestamp区别
- Power of Four
- Android 支付宝,微信支付 支付界面
- 自定义的返回按钮 简单添加左滑手势
- Android基础--------零散小知识
- Unity3D之C#用Socket传数据包