leetcode刷题笔记(Golang)--110. Balanced Binary Tree

110. Balanced Binary Tree

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 left and right subtrees of every node differ in height by no more than 1.

Example 1:

Given the following tree [3,9,20,null,null,15,7]:

3

/
9 20
/
15 7
Return true.

Example 2:

Given the following tree [1,2,2,3,3,null,null,4,4]:

   1
  / \
 2   2
/ \

3 3
/
4 4
Return false.

func isBalanced(root *TreeNode) bool {
	if root == nil {
		return true
	}
	hleft := getHeight(root.Left)
	hright := getHeight(root.Right)
    
    return (math.Abs(float64(hleft-hright)) < 2) && isBalanced(root.Left) && isBalanced(root.Right)
}

func getHeight(root *TreeNode) int {
	if root == nil {
		return 0
	}
	hleft := getHeight(root.Left) + 1
	hright := getHeight(root.Right) + 1
	if hleft > hright {
		return hleft
	}
	return hright
}
发布了98 篇原创文章 · 获赞 0 · 访问量 1477

猜你喜欢

转载自blog.csdn.net/weixin_44555304/article/details/104384890