劍指Offer JZ39 平衡二叉樹 C 實現

2021-10-09 20:45:53 字數 418 閱讀 5837

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

在這裡,我們只需要考慮其平衡性,不需要考慮其是不是排序二叉樹

1、思路:平衡二叉樹的任意結點的子樹的高度差都小於等於1,在上一題的方法三中,我們通過分治法遞迴地求左右子樹的深度以得到當前結點的深度,在此題中只需要在方法三的遞迴回溯時加上一條判斷語句來判斷當前左右子樹的高度差是否大於1即可。在回溯的過程中,如果標記為已經為false,就沒有必要再繼續遞迴,直接返回,類似於剪枝操作。

2、**:

class solution 

return 0;

}bool isbalanced_solution(treenode* proot)

};

3、複雜度:

時間複雜度:o(n);

空間複雜度:o(n)。

劍指 Offer JZ39 平衡二叉樹

輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。在這裡,我們只需要考慮其平衡性,不需要考慮其是不是排序二叉樹 平衡樹 平衡樹 balance tree,bt 指的是,任意節點的子樹的高度差都小於等於1。二叉排序樹 一棵空樹,或者是具有下列性質的二叉樹 若左子樹不空,則左子樹上所有結點的值均小於它的根結...

39 劍指offer 平衡二叉樹

題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。解題思路 平衡二叉樹,對於每個根節點左右子樹高度差小於等於1 1 class solution 12bool isbalanced solution treenode proot 17int nleft treedepth proot left...

劍指offer 39 平衡二叉樹

輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。首先,什麼是平衡二叉樹?如果二叉樹中任意結點的左右子樹深度相差不超過1,那麼它就是平衡二叉樹。最直接的做法,遍歷每個結點,借助乙個獲取樹深度的遞迴函式,根據該結點的左右子樹高度差判斷是否平衡,然後遞迴地對左右子樹進行判斷。public class sol...