【Leetcode刷题篇】剑指offer55-平衡二叉树
发布日期:2021-06-29 15:33:46 浏览次数:2 分类:技术文章

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

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

/** * 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 static class ReturnData{
private boolean isB ; private int h; public ReturnData(boolean isB,int h){
this.isB = isB; this.h = h; } } // 迭代判断 public static ReturnData process(TreeNode root){
if(root==null){
return new ReturnData(true,0); } ReturnData leftData = process(root.left); if(!leftData.isB){
return new ReturnData(false,0); } ReturnData rightData = process(root.right); if(!rightData.isB){
return new ReturnData(false,0); } if(Math.abs(rightData.h-leftData.h)>1){
return new ReturnData(false,0); } return new ReturnData(true,Math.max(rightData.h,leftData.h)+1); } public boolean isBalanced(TreeNode root) {
return process(root).isB; }}

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

上一篇:【Leetcode刷题篇】leetcode98 判断一棵树是否为二叉搜索树
下一篇:【Leetcode刷题篇】剑指offer51 数组中的逆序对

发表评论

最新留言

不错!
[***.144.177.141]2024年04月19日 15时40分10秒