當(dāng)前位置:
首頁(yè) >
剑指offer(Java实现) 平衡二叉树
發(fā)布時(shí)間:2025/4/16
41
豆豆
生活随笔
收集整理的這篇文章主要介紹了
剑指offer(Java实现) 平衡二叉树
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述:
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹
思路:
根據(jù)平衡二叉樹的特性:平衡因子的絕對(duì)值 <= 1。
因此,本題的重點(diǎn)應(yīng)在于求解左子樹、右子樹的深度。
代碼實(shí)現(xiàn):
public class Solution {public boolean IsBalanced_Solution(TreeNode root) {if (root == null) {return true;}int left = getDepth(root.left);int right = getDepth(root.right);// 求左右子樹的差值int diff = left - right;if ((diff >= -1) && (diff <= 1)) {return true;}return false;}public int getDepth(TreeNode root) {// 邊界條件,達(dá)到葉子節(jié)點(diǎn)if (root == null) {return 0;}int depth = 0;// 迭代求左子樹深度int leftNode = getDepth(root.left);// 迭代右子樹深度int rightNode = getDepth(root.right);// 該樹左右子樹中的最大值 +1 為該樹的深度depth = leftNode > rightNode ? leftNode : rightNode;return depth + 1;} }總結(jié)
以上是生活随笔為你收集整理的剑指offer(Java实现) 平衡二叉树的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅析Java内存模型--ClassLoa
- 下一篇: 剑指offer(Java实现) 求1+2