• LeetCode 第 110 号问题:平衡二叉树


    本文首发于公众号「五分钟学算法」,是 图解 LeetCode 系列文章之一。
    个人网站: https://www.cxyxiaowu.com

    题目来源于 LeetCode 上第 110 号问题:平衡二叉树。

    题目描述

    给定一个二叉树,判断它是否是高度平衡的二叉树。

    题目解析

    采取后序遍历的方式遍历二叉树的每一个结点。

    在遍历到一个结点之前已经遍历了它的左右子树,那么只要在遍历每个结点的时候记录它的深度(某一结点的深度等于它到叶结点的路径的长度),就可以一边遍历一边判断每个结点是不是平衡的。

    动画描述

    待补充

    代码实现

            class Solution {
        private boolean isBalanced = true;
        public boolean isBalanced(TreeNode root) {
            getDepth(root);
            return isBalanced;
        }
          public int getDepth(TreeNode root) {
          if (root == null)
                return 0;
            int left = getDepth(root.left);
            int right = getDepth(root.right);
            if (Math.abs(left - right) > 1) {
                isBalanced = false;
            }
            return right > left ? right + 1 : left + 1;
          }
    }
          


    v2-3af2339a6056d546cf4383d39233e8fa_b.jpg

  • 相关阅读:
    jQuery标签操作
    Bootstrap和Font Awesome
    jQuery拾遗
    Bootstrap笔记
    软件测试
    Day01 第一个Python程序
    cd指令
    ls命令
    type命令
    每天一个Linux指令
  • 原文地址:https://www.cnblogs.com/csnd/p/16675374.html
Copyright © 2020-2023  润新知