標籤:style blog ar io color sp for on div
| 標題: |
Balanced Binary Tree |
| 通過率: |
32.3% |
| 難度: |
簡單 |
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.
平衡二叉樹。這個可以由二叉樹深度來計算,再二叉樹深度計算中每次進行深度比較取深度較深的一個,那麼平衡二叉樹再比較深度時就是A-B絕對值超過一的話就不是二叉樹了。立馬返回-1 ,當左右子樹有一邊深度值是-1時立馬終止,返回此樹非平衡二叉樹,如果A-B絕對值總是在0,1,-1三個數之中,那麼繼續深度遞迴判斷,具體代碼如下:
1 /** 2 * Definition for binary tree 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) return true;13 if(height(root)==-1) return false;14 else return true;15 16 }17 public int height(TreeNode root){18 if(root==null) return 0;19 int depth1=0;20 int depth2=0;21 depth1=height(root.right);22 depth2=height(root.left);23 if(depth1==-1||depth2==-1) return -1;24 if((depth1-depth2>1 )||(depth1-depth2)<-1)25 return -1;26 else{27 if(depth1>depth2)28 return depth1+1;29 else30 return depth2+1;31 }32 33 }34 }
leetcode------Balanced Binary Tree