110. Balanced Binary Tree 110.平衡二叉树
Posted immiao0319
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了110. Balanced Binary Tree 110.平衡二叉树相关的知识,希望对你有一定的参考价值。
Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as:
a binary tree in which the left and right subtrees of every node differ in height by no more than 1.
Example 1:
Given the following tree [3,9,20,null,null,15,7]
:
3
/ 9 20
/ 15 7
Return true.
Example 2:
Given the following tree [1,2,2,3,3,null,null,4,4]
:
1
/ 2 2
/ 3 3
/ 4 4
一开始以为是最长路径和最短路径相减,不懂为啥直接是左右的最长路径相减了:没有最短。有长的子树就不用考虑短的了,所以是最长和最长的比较
然后还是用求二叉树最大长度的那个方法
/** * 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) { //cc if (root == null) return true; return (helper(root) != -1); } public int helper(TreeNode root) { //cc if (root == null) return 0; int left = helper(root.left); int right = helper(root.right); if (left == -1 || right == -1 || Math.abs(left - right) > 1) return -1; return Math.max(left, right) + 1; } }
以上是关于110. Balanced Binary Tree 110.平衡二叉树的主要内容,如果未能解决你的问题,请参考以下文章