/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isBalanced(TreeNode root) {
//终止条件:1.给的树本来就是空2.到达最深的节点
if(root==null)return true;
//判断该节点左右子树是否平衡
if(!isBalanced(root.left) || !isBalanced(root.right))return false;
//判断方法:通过判断节点深度差是否大于1
if(Math.abs(testDepth(root.right)-testDepth(root.left))>1) return false;
//默认条件
return true;
}
public int testDepth(TreeNode root){
//返回当前节点深度的套路写法
return root==null ? 0 : Math.max(testDepth(root.left),testDepth(root.right))+1;
}
}
剑指 Offer 55 - II. 平衡二叉树-- 心得和思路
最新推荐文章于 2024-09-28 10:34:40 发布