首页 > 代码库 > 【LeetCode】110. Balanced Binary Tree-判断是否为平衡二叉树
【LeetCode】110. Balanced Binary Tree-判断是否为平衡二叉树
一、描述:
二、思路
平衡二叉树(Balanced Binary Tree):又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树;
通过每一棵左右子树的深度判断子树是否为平衡二叉树,只有当所有的子树是平衡二叉树时,才能得出整棵树是平衡二叉树;
故函数方法中有两种判断,1是空树?2左右两个子树的高度差的绝对值不超过1?
三、代码:
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 public boolean isBalanced(TreeNode root) { 12 if(root==null){ 13 return true; 14 } 15 int left = depth(root.left); 16 int right = depth(root.right); 17 if(left+1<right || right+1<left){ 18 return false; 19 }else{ 20 return isBalanced(root.left)&&isBalanced(root.right); 21 } 22 } 23 24 public int depth(TreeNode root){ 25 if(root==null){ 26 return 0; 27 }else{ 28 int left = depth(root.left); 29 int right = depth(root.right); 30 return left<right?right+1:left+1; 31 } 32 } 33 }
【LeetCode】110. Balanced Binary Tree-判断是否为平衡二叉树
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。