判斷平衡二叉樹

2021-09-03 08:09:49 字數 780 閱讀 9974

package com.jsp.tree;

/** * 判斷是否是平衡二叉樹

* @author jiangshipan

* 任何乙個節點 左子樹和右子數高度差小於1

* 以每乙個節點為頭的樹都是平衡的,則這個樹平衡

* * 可能: 1.左樹不平

* 2.右樹不平

* 3. 左或右高 整棵樹

*/public class isbalancedtree }

public static class returndata }

public static returndata process(node head)

returndata leftdata = process(head.left);

//左樹不平衡了

if(!leftdata.isb)

returndata rightdata = process(head.right);

//右樹不平衡了

if(!rightdata.isb)

//左右樹都平衡

if(math.abs(leftdata.h - rightdata.h) > 1)

//高度為左右樹較大的 + 1

return new returndata(true, math.max(leftdata.h, rightdata.h )+ 1);

}public static boolean isb(node head)

}

判斷平衡二叉樹

演算法 樹 平衡二叉樹 平衡二叉樹的概念 左右節點的樹高之差小於1。1.計算節點的高。通過遞迴,求出左右子樹的高度,當前節點的高度,最大的那乙個 1。int getheight treenode root 2.通過遞迴的方法計算左子樹和右子樹的樹高之差是否有小於1的,有就直接返回false.publ...

判斷平衡二叉樹

輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。最直接的做法,遍歷每個節點,借助乙個獲取樹深度的遞迴函式,根據該節點的左右子樹高度差判斷是否平衡,然後遞迴地對左右子樹進行判斷 pubic class solution private intmaxdepth treenode root 這種做法有很明顯...

判斷平衡二叉樹

平衡二叉樹的定義 對於任一結點,其左右子樹高度之差不大於1。因此解決該問題自然而然就想到改寫求二叉樹的高度的演算法。如下為求二叉樹高度的演算法 public int getheight treenode root int leftheight getblanceheight root.left in...