We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
给定一个二叉树,判断它是否是高度平衡的二叉树。
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。
示例 1:
给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回 true 。 示例 2: 给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 / \ 3 3 / \ 4 4 返回 false 。
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/balanced-binary-tree 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
首先定义一个辅助函数 getHeight 用于获取二叉树某个节点的高度,只需要递归即可:
getHeight
function getHeight(node) { if (!node) return 0 return Math.max(getHeight(node.left), getHeight(node.right)) + 1 }
之后是否平衡就比较好求了,首先比较直接子节点 left 和 right 是否高度相差绝对值 <= 1,之后再递归的比较 left 和 right 是否是平衡二叉树即可。
left
right
var isBalanced = function (root) { if (!root) { return true } let isSonBalnaced = Math.abs(getHeight(root.left) - getHeight(root.right)) <= 1 return isSonBalnaced && isBalanced(root.left) && isBalanced(root.right) };
The text was updated successfully, but these errors were encountered:
No branches or pull requests
给定一个二叉树,判断它是否是高度平衡的二叉树。
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。
示例 1:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/balanced-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
首先定义一个辅助函数
getHeight
用于获取二叉树某个节点的高度,只需要递归即可:之后是否平衡就比较好求了,首先比较直接子节点
left
和right
是否高度相差绝对值 <= 1,之后再递归的比较left
和right
是否是平衡二叉树即可。The text was updated successfully, but these errors were encountered: