三行代碼求二叉樹的節點個數以及二叉樹的深度

二叉樹的節點格式如下:

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;
	
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章