Title:
Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree was defined as a binary tree in which the depth of the Every node never differ by more than 1.
Tips:
The question asks whether a given two-fork tree is "balanced", where the definition of "balance" is to require that the difference between the left and right sub-tree heights of each node cannot be greater than 1, the idea of solving the problem is using DFS.
Code:
/** Definition for a binary tree node. * struct TreeNode {* int val; * TreeNode *left; * TreeNode *right; * TreeNode (int x): Val (x), left (null), right (NULL) {} *}; */classSolution { Public: BOOLIsbalanced (treenode*root) { returnDFS (root)! =-1; } intDFS (treenode*root) { if(Root = NULL)return 0; intleft = DFS (root->Left ); if(left = =-1)return-1; intright = DFS (root->Right ); if(Right = =-1)return-1; if(ABS (Left-right) >1)return-1; returnMax (left, right) +1; }};
"Leetcode" 110. Balanced Binary Tree