判斷平衡二叉樹

2021-09-02 19:26:06 字數 390 閱讀 9495

@[演算法]@[樹]@[平衡二叉樹]

平衡二叉樹的概念:左右節點的樹高之差小於1。

1.計算節點的高。

通過遞迴,求出左右子樹的高度,當前節點的高度,最大的那乙個+1。

int getheight(treenode root)
2.通過遞迴的方法計算左子樹和右子樹的樹高之差是否有小於1的,有就直接返回false.

public boolean isbalanced(treenode root)
1.演算法1存在重複計算樹高的弊端,效率不高。

2.通過自底向上計算,是否為平衡二叉樹

int dept(treenode root)

判斷平衡二叉樹

package com.jsp.tree 判斷是否是平衡二叉樹 author jiangshipan 任何乙個節點 左子樹和右子數高度差小於1 以每乙個節點為頭的樹都是平衡的,則這個樹平衡 可能 1.左樹不平 2.右樹不平 3.左或右高 整棵樹 public class isbalancedtree...

判斷平衡二叉樹

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

判斷平衡二叉樹

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