【剑指OFFER】55 - II. 平衡二叉树
发布日期:2021-06-29 19:47:01 浏览次数:2 分类:技术文章

本文共 881 字,大约阅读时间需要 2 分钟。

题目:输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。

示例 1:

给定二叉树 [3,9,20,null,null,15,7]    3   / \  9  20    /  \   15   7返回 true 。

示例 2:

给定二叉树 [1,2,2,3,3,null,null,4,4]       1      / \     2   2    / \   3   3  / \ 4   4返回 false 。

限制:

0 <= 树的结点个数 <= 10000

答案:

/** * 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 return high(root) >= 0; } public int high(TreeNode root){
if(root == null) return 0; int leftHigh = high(root.left), rightHigh = high(root.right); if(leftHigh >= 0 && rightHigh >= 0 && Math.abs(rightHigh - leftHigh) <= 1) return Math.max(leftHigh, rightHigh) + 1; else return -1; }}

转载地址:https://darkness.blog.csdn.net/article/details/115525363 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【剑指OFFER】57. 和为s的两个数字
下一篇:【剑指OFFER】 55 - I. 二叉树的深度

发表评论

最新留言

不错!
[***.144.177.141]2024年04月14日 09时54分17秒