文章目录
- 题目
- 方法一:后序递归
题目
方法一:后序递归
递归遍历的同时判断是否是平衡二叉树,如果不是,就置为-1,如果是 就正常做递归求最大深度
参考图解网址
判断平衡二叉树
class Solution {public boolean isBalanced(TreeNode root) {return dfs(root) !=-1;}public int dfs(TreeNode root){if(root == null) return 0;int left = dfs(root.left);if(left==-1) return -1;// 左子树高度差大于1,return -1表示已经不是平衡树了 就无需去递归右子树了int right = dfs(root.right);if(right==-1) return -1;// 右子树高度差大于1,return -1表示已经不是平衡树了if(Math.abs(left-right)>1) return -1; // 左右子树高度差大于1,return -1表示已经不是平衡树了else return Math.max(left,right)+1;}
}