用递归算法
- 分三种情况(没有子树//有左子树或右子树//左右子树都有)
- 上代码
int DoubleNodes(BiTree b){
if(n==NULL)
return 0;
else if(b->lchild!=NULL && b->rchild!=NULL)
return DoubleNodes(BiTree b->lchild)+DoubleNodes(BiTree b->rchild)+1;
else
return DoubleNodes(BiTree b->lchild)+DoubleNodes(BiTree b->rchild);
}
用遍历
- 用前序/中序/后序对应,找出双分支结点则+1
- 最终返回sum值