1. 程式人生 > 實用技巧 >webpack打包提示: Uncaught Error: Cannot find module 'strip-ansi'

webpack打包提示: Uncaught Error: Cannot find module 'strip-ansi'

技術標籤:java演算法

題目 劍指 Offer 55 - II. 平衡二叉樹

輸入一棵二叉樹的根節點,判斷該樹是不是平衡二叉樹。如果某二叉樹中任意節點的左右子樹的深度相差不超過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 。

限制:

1 <= 樹的結點個數 <= 10000

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/ping-heng-er-cha-shu-lcof

著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

思路

如果某二叉樹中某節點的左右子樹的深度相差超過1,就令res為false;

複雜度分析

時間:O(n)
空間: O(n)

程式碼

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    boolean
res; public boolean isBalanced(TreeNode root) { if(root == null) { return true; } res = true; isBalance(root); return res; } int isBalance(TreeNode root) { if(root == null) { return 0; } int leftH = isBalance
(root.left) + 1; int rightH = isBalance(root.right) + 1; if(Math.abs(leftH - rightH) > 1) { res = false; } return Math.max(leftH, rightH); // 返回當前節點的高度 } }

結果

在這裡插入圖片描述