判斷完全二叉樹節點個數

2021-10-04 14:44:00 字數 732 閱讀 7194

//節點

struct node };

//銷毀二叉樹

void

destroy_tree

(node* root)

destroy_tree

(root->left)

;destroy_tree

(root->right);

delete root;

}//找到左子樹樹的總高度

intget_left_level

(node*node,

int level)

return level -1;

}//二分搜尋

intbs

(node* node,

int level,

int h)

//右子樹左邊界到了整棵樹的深度,左子樹一定是滿的

//返回左子樹節點個數+當前節點(1個)+右子樹節點數if(

get_left_level

(node->right, level +1)

== h)

else

}int

node_nums

(node* node)

return

bs(node,1,

get_left_level

(node,1)

);}int

main

(void

)

完全二叉樹節點個數

關於作者 最簡單的解法就是遍歷這棵樹,時間複雜度是o n 如果只是這一種解法,就不會有本文了。本文中給出兩種解法。第一次看到完全二叉樹的定義比較懵,搜尋到的定義如下 設二叉樹的深度為h,除第 h 層外,其它各層 1 h 1 的結點數都達到最大個數,第h層所有的結點都連續集中在最左邊,這就是完全二叉樹...

leetcode 完全二叉樹節點個數

給出乙個完全二叉樹,求出該樹的節點個數。說明 完全二叉樹的定義如下 在完全二叉樹中,除了最底層節點可能沒填滿外,其餘每層節點數都達到最大值,並且最下面一層的節點都集中在該層最左邊的若干位置。若最底層為第 h 層,則該層包含 1 2h 個節點。此題為求樹中節點個數,可以直接使用遞迴方法計算樹中遍歷樹中...

學習筆記 完全二叉樹節點個數

題目 統計完全二叉樹節點個數。觀察完全二叉樹的結構發現主要有如下幾種 規律就是要麼根節點的左子樹為滿二叉樹,要麼根節點的右子樹為滿二叉樹。思路 首先,如果當前節點的右子樹最左邊那個節點和二叉樹的層數 深度 一樣則說明該節點的左子樹為滿二叉樹,如上圖左邊所示,的確根節點的右子樹的最左邊那個節點所在層數...