110. Balanced Binary Tree
problem description
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]:
Return true.
Example 2:
Given the following tree [1,2,2,3,3,null,null,4,4]:
Return false.
algorithm thought
二叉树问题,判断是否不是平衡二叉树。平衡二叉树定义是左右子树高度差要小于等于1.于是这题变成了类似求二叉树高度的问题。之前也做过二叉树高度问题,直接递归解决。这里只需要在求出高度之后加入一个判断。如果不是平衡的如何处理。求高度的函数,返回值必须是int而不是bool,这就是我们面临的问题。一种解决方案是把求高度的照搬过来,加一个全局变量,如果不平衡,全局变量为false。我们这里用另一种方法,如果不平衡,返回INT_MAX.由于题目中不存在这么大的二叉树,所以INT_MAX和任何子树组合都是不平衡的,最后INT_MAX会传递到调用函数,最后判断是否为INT_MAX来觉得返回true还是false
code
algorithm analysis
时间复杂度O(n),就是遍历问题,遍历所有节点之后会得到结果
Last updated