二叉樹的節點格式如下:
struct BinaryTreeNode
{
int m_nValue;
BinaryTreeNode* m_pLeft;
BinaryTreeNode* m_pRight;
};
1.求二叉樹的節點個數
這道題比較簡單,使用隨便一種遍歷方式,在遍歷的途中將節點個數記錄下來即可,但是這樣要聲明一個靜態變量去記錄節點個數。爲了簡便,用遞歸的方式來實現:
int Count(binaryTreeNode* t)
{
if (t == NULL)
return 0;
return 1 + Count(t->mLeft) + Count(t->mRight);
}
2.求二叉樹的深度
二叉樹的深度應該爲左右子樹中深度的最大值,因此我們就可以用遞歸的方法去求二叉樹的深度。
代碼如下:
int TreeDeep(binaryTreeNode* t)
{
if (t == NULL)return 0;
int left = TreeDeep(t->mLeft) + 1, right = TreeDeep(t->mRight)+1;
return left > right ? left : right;
}