平衡二叉樹,又叫平衡二叉搜尋樹(self-balancing binary search tree),其定義為:它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。
由定義可知,對於一棵高度為n的樹,其點最少的情況為:左子樹與右子樹中,一者為高為n的最小平衡二叉樹,另一者為高為n - 1的最小平衡二叉樹,因此,對於高度為n的平衡二叉樹,其最少點的數量為:f(n)=f(n-1)+f(n-2)+1,即左子樹與右子樹的點的數量的和,再加上根節點的1。遞迴的初始值為f(1) = 1, f(2) = 2。
而對於高度為n的平衡二叉樹,點最大情況即為其為一棵滿的二叉樹的情況,即完美二叉樹時(注意:不是完全二叉樹,完全二叉樹允許最後一行的點不滿,但是需要位於左端),此時,點的數量為2 ^ n - 1。這裡高度的定義方式為,最底層的高度為1,若最底層的高度為0的話,則n層的樹的完美二叉樹的點的數量為2 ^ (n + 1) - 1。
平衡二叉樹中點的數量
平衡二叉樹,又叫平衡二叉搜尋樹 self balancing binary search tree 其定義為 它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。由定義可知,對於一棵高度為n的樹,其點最少的情況為 左子樹與右子樹中,一者為高為n的最小平衡二叉...
平衡二叉樹中點的數量
平衡二叉樹,又叫平衡二叉搜尋樹 self balancing binary search tree 其定義為 它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。由定義可知,對於一棵高度為n的樹,其點最少的情況為 左子樹與右子樹中,一者為高為n的最小平衡二叉...
平衡二叉樹例題 平衡二叉樹
acwing 72.平衡二叉樹 思路一 求每個節點的左右子樹深度,根據深度差判斷,直到葉子節點結束,效率不夠高,每個節點都要用兩次計算深度的遞迴函式 思路二 從葉子節點開始,計算深度差,一旦有深度差大於1的,就直接返回0,也不用管上面的深度是不是正確了,畢竟我們只需要true和false兩種狀態,省...