39平衡二叉樹

2021-10-01 21:24:29 字數 776 閱讀 4292

輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。

平衡二叉樹根據定義,父結點需要子結點兩個資訊:一是左右子樹是否平衡,二是左右子樹的高度差是否<=1,注意在最終返回資料時,返回左右子樹的最大高度+1(頭結點)。我們可以自己建立乙個結構實現。

public

static resultdata isbalanced_solution

(treenode root)

resultdata left =

isbalanced_solution

(root.left);if

(!left.isbalanced)

resultdata right =

isbalanced_solution

(root.right);if

(!right.isbalanced)

if(math.

abs(left.height - right.height)

>1)

return

newresultdata(1

+ math.

max(left.height, right.height)

,true);

}public

static

boolean

isbalanced_solution

(treenode root)

private

static

class

resultdata

}

39 平衡二叉樹

輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。遞迴判斷左子樹和右子樹是否是平衡二叉樹 從下往上遍歷,如果子樹是平衡二叉樹,則返回子樹的高度 如果發現子樹不是平衡二叉樹,則返回 1,直接停止遍歷,這樣至多只對每個結點訪問一次。public class solution public intgetdep...

Q39 平衡二叉樹

題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。平衡二叉樹定義 它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。coding utf 8 class treenode def init self,x self.val x self.left non...

JZ39 平衡二叉樹

題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。在這裡,我們只需要考慮其平衡性,不需要考慮其是不是排序二叉樹。題解 平衡樹 balance tree,bt 指的是,任意節點的子樹的高度差都小於等於1。求出每顆子二叉樹的子樹高度差,如果大於1那就不是平衡二叉樹,反之一定是。求子樹高度差 pub...