給出一個完全二叉樹辜膝,求出該樹的節(jié)點個數(shù)贤重。
說明:
完全二叉樹的定義如下:在完全二叉樹中涤垫,除了最底層節(jié)點可能沒填滿外配椭,其余每層節(jié)點數(shù)都達到最大值,并且最下面一層的節(jié)點都集中在該層最左邊的若干位置雹姊。若最底層為第 h 層股缸,則該層包含 1~ 2h 個節(jié)點。
我的解法:用遞歸的方法求解吱雏,若當前節(jié)點的左子樹和右子樹都為空敦姻,則直接返回1,否則遞歸計算左子樹的節(jié)點數(shù)n和右子樹的節(jié)點數(shù)m歧杏,最終返回1+n+m镰惦。
時間復雜度:O(1),空間復雜度:O(n)
class Solution {
public int countNodes(TreeNode root) {
if (root == null) {
return 0;
}
if (root.left == null && root.right == null) {
return 1;
}
return 1 + countNodes(root.left) + countNodes(root.right);
}
}
更合適的解法需要利用完全二叉樹的性質(zhì)來求解問題犬绒!