File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed
Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change 1+ class TreeNode :
2+ def __init__ (self , x ):
3+ self .val = x
4+ self .left = None
5+ self .right = None
6+
7+ def is_balanced (root ):
8+ def height (node ):
9+ if not node :
10+ return 0
11+ left_height = height (node .left )
12+ right_height = height (node .right )
13+ if left_height == - 1 or right_height == - 1 or abs (left_height - right_height ) > 1 :
14+ return - 1
15+ return max (left_height , right_height ) + 1
16+
17+ return height (root ) != - 1
18+
19+ # Test cases
20+ t1 = TreeNode (3 )
21+ t2 = TreeNode (9 )
22+ t3 = TreeNode (20 )
23+ t4 = TreeNode (15 )
24+ t5 = TreeNode (7 )
25+ t2 .left = t4
26+ t2 .right = t5
27+ t1 .left = t2
28+ t1 .right = t3
29+ assert is_balanced (t1 ) == True
30+
31+ t1 = TreeNode (1 )
32+ t2 = TreeNode (2 )
33+ t3 = TreeNode (2 )
34+ t4 = TreeNode (3 )
35+ t5 = TreeNode (3 )
36+ t6 = TreeNode (4 )
37+ t7 = TreeNode (4 )
38+ t6 .left = t7
39+ t5 .left = t6
40+ t4 .left = t5
41+ t3 .left = t4
42+ t2 .left = t3
43+ t1 .left = t2
44+ assert is_balanced (t1 ) == False
You can’t perform that action at this time.
0 commit comments