标签:
题目地址:https://leetcode.com/problems/balanced-binary-tree/
题目解答:
/** * 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) { return isBalanced(root,new int[1]); } private boolean isBalanced(TreeNode root,int[] depth){ if(root == null){ depth[0] = 0; return true; } int temp = depth[0]; boolean left = isBalanced(root.left,depth); int leftDepth = depth[0]; depth[0] = temp; boolean right = isBalanced(root.right,depth); int rightDepth = depth[0]; depth[0] = 1 + (leftDepth > rightDepth?leftDepth:rightDepth); int diff = rightDepth - leftDepth; if(diff >1 || diff < -1){ return false; } return left&&right; } }
标签:
原文地址:http://www.cnblogs.com/xiongyuesen/p/4417487.html