From 4d84fdafec7fc93c82c36bbb682af52c76c3dccb Mon Sep 17 00:00:00 2001 From: Nezuko-Wen <409053122@qq.com> Date: Sun, 9 Aug 2020 13:41:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=A0=91=E5=B9=B3=E8=A1=A1?= =?UTF-8?q?=E6=80=A7=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/leecode/tree/BalanceTree.java | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/leecode/tree/BalanceTree.java diff --git a/src/leecode/tree/BalanceTree.java b/src/leecode/tree/BalanceTree.java new file mode 100644 index 0000000..ed36c79 --- /dev/null +++ b/src/leecode/tree/BalanceTree.java @@ -0,0 +1,29 @@ +package leecode.tree; + +/** + * 检查二叉树平衡性 + */ +public class BalanceTree { + public static void main(String[] args) { + Integer[] integers = new Integer[]{1,2,2,3,3,null,null,4,4}; + TreeNode root = TreeNode.parseTree(integers); + System.out.println(isBalanced(root)); + } + public static boolean isBalanced(TreeNode root) { + if (root == null) return true; + int left = getDepth(root.left); + int right = getDepth(root.right); + if (Math.abs(left - right) >= 2) { + return false; + } + return isBalanced(root.left) && isBalanced(root.right); + } + + public static int getDepth(TreeNode node){ + if (node == null) { + return 0; + } + return Math.max(1 + getDepth(node.left),1 + getDepth(node.right)); + } + +}