https://leetcode-cn.com/problems/balanced-binary-tree/
给定一个二叉树,判断它是否是高度平衡的二叉树。
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:true
示例 2:
输入:root = [1,2,2,3,3,null,null,4,4]
输出:false
示例 3:
输入:root = []
输出:true
判断出root.left和root.right的高度差以后,继续递归,直到root为空,return
想明白递归return的条件和怎么递归
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/class Solution {public boolean isBalanced(TreeNode root) {if(root == null){return true;}if(Math.abs(maxDepth(root.left)-(maxDepth(root.right)))>1){return false;}return isBalanced(root.left)&&isBalanced(root.right);}public int maxDepth(TreeNode node){if(node == null){return 0;}int max = 0;int maxL = 0;int maxR = 0;maxL = maxDepth(node.left);maxR = maxDepth(node.right);return (maxL>maxR)?maxL+1:maxR+1;}}
