求二叉树深度
本题解题关键 树的深度=Math.max(左子树深度,右子树深度)+1
var maxDepth = function(root) {
if(!root){
return 0
}
return Math.max(maxDepth(root.left),maxDepth(root.right))+1
}
求是否是平衡二叉树
本题关键在于以每一个节点为根节点,判断左右子树深度差是否<2
所以本题一个重点就是求深度。本题思路是一个从上至下的判断
var isBalanced = function(root) {
if(!root){
return true
}
return Math.abs(back(root.left)-back(root.right))<2&&isBalanced(root.left)&&isBalanced(root.right)
}
//求深度的函数
function back(node){
if(!node){
return 0
}
return Math.max(back(node.left),back(node.right))+1
}