牛客(39)平衡二叉樹

2022-09-11 14:45:25 字數 579 閱讀 1630

//

題目描述

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

public

boolean

isbalanced_solution(treenode root)

//它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。

if (math.abs(treedepth(root.left)-treedepth(root.right))>1)

boolean left =isbalanced_solution(root.left);

boolean right =isbalanced_solution(root.right);

return right&&left;

}public

inttreedepth(treenode root)

int left =treedepth(root.left);

int right =treedepth(root.right);

return (left>right?left:right)+1;

}

39 平衡二叉樹

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

39平衡二叉樹

輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。平衡二叉樹根據定義,父結點需要子結點兩個資訊 一是左右子樹是否平衡,二是左右子樹的高度差是否 1,注意在最終返回資料時,返回左右子樹的最大高度 1 頭結點 我們可以自己建立乙個結構實現。public static resultdata isbalance...

Q39 平衡二叉樹

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