你的意思是根据某树林所转化的二叉树,如何求原来树林有几棵树?原来树林中,除了第一棵树的根结点成了二叉树的根结点以外,其他都分别成为右子树根、右子树的右子树根、右子树的右子树的右子树根……所以应该可以这样算(示意伪代码):
int number_of_trees(BinaryTree *root)
{
if (root==NULL)
return 0;
return 1 + number_of_trees(root->right);
}
有一阵子不看书了,你自己核实一下解法是否正确。