1.计算二叉树的结点个数
思想:以root为根的树的结点个数=左子树的结点个数+右子树的结点个数+1。
//计算结点个数
int Size(Node* root)
{
if (root == NULL)
return 0;
else
return Size(root->left) + Size(root->right) + 1;
}
2.计算二叉树的高度(深度)
思想:
①计算出左子树的高度HL;
②计算出右子树的高度HR;
③取出HL和HR中较大的,然后再加上1,即是当前树的高度。
以root为根的二叉树的高度=左子树的高度HL与右子树的高度HR(比较,选择较大的高度+1)
//计算二叉树的高度(深度)
int Height(Node* root)
{
if (root == NULL)
return 0;
else
{
int HL = Height(root->left);
int HR = Height(root->right);
return HL > HR ? (HL + 1) : (HR + 1);
}
}
3.查找值为k的结点