结构推理 以二叉链表为存储结构,分别写出求二叉树结点总数及叶子总数的算法。
【正确答案】(1)计算结点总数
   int CountNode(BinTree*root)
   {
   intnum1,num2;
   if(root==Null)return(0);
   else if(root->lchild==Null&&rooot->rchild==Null)
   return(1);
   else
     {
       num 1=CountNode(root->lchild);
       num 2=CountNode(root->rchild);
       return(num1+num2+!);
     }
   }
   (2)计算叶子总数
   int CountLeafs(BinTree*root)
   {
    intnum1,num2;
    if(roo==Null)return(0);
    else if(mot->lchild==Null&&root->rchild==Null)
    return(1);
    else
     {
   num1=CountLeafs(root->lchild);
   num2=CountLeafs(root->rchild);
   return(num1+num2);
     }
   }
【答案解析】