判斷一棵二叉樹是否是平衡二叉樹

2021-10-01 02:47:25 字數 819 閱讀 3709

思路:

遞迴方式判斷,返回的資訊應該有兩個:

(1)這棵樹是否是平衡的

(2)這棵樹的高度為多少

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

newreturndata

(true

, math.

max(leftdata.h, rightdata.h)+1

);}public

static

boolean

isb(node head)

public

static

void

main

(string[

] args)

}

如何判斷一棵二叉樹是否是平衡二叉樹

平衡二叉樹的定義,如果任意節點的左右子樹的深度相差不超過1,那這棵樹就是平衡二叉樹。演算法思路 先編寫乙個計算二叉樹深度的函式getdepth,利用遞迴實現 然後再遞迴判斷每個節點的左右子樹的深度是否相差1 static int getdepth binnode root 注意這裡的 1,對應於ro...

二叉樹 判斷一棵樹是否是平衡二叉樹

平衡二叉樹 空樹或者左右兩個孩子高度差不超過1 在涉及到二叉樹的題目時,遞迴函式非常好用 列出可能性 整理出返回值的型別 整個遞迴過程按照同樣的結構得到子樹的資訊,整合子樹的資訊,加工出應該返回的資訊,向上返回 1.左子樹是否平衡 2.右子樹是否平衡 3.左子樹的高度 4.右子樹的高度 根據可能性,...

判斷一棵二叉樹是否為平衡二叉樹

1.先給出樹節點資訊 typedef struct treetree,bitree 2.原理 判斷一棵樹是否為平衡二叉樹,要滿足每個節點的左右子樹的高度之差的絕對值不大於1。因此,我們這裡可以比較每個節點的左右字數高度,判斷他們差的絕對值是否滿足平衡二叉樹的條件即可 3.演算法 求二叉樹高度演算法 ...