开发者社区> 问答> 正文

编写递归算法,统计二叉树中度为2的结点个数

编写递归算法,统计二叉树中度为2的结点个数

展开
收起
知与谁同 2018-07-15 14:14:32 4096 0
2 条回答
写回答
取消 提交回答
  • 这个时候,玄酱是不是应该说点什么...
    int TwoBranch(Bitree T)
    {
    int s;
    if(T == NULL)
    return 0;
    s = (T->lchild != NULL) && (T->rchild != NULL);
    return s + TwoBranch(T->lchild) + TwoBranch(T->rchild);
    }
    2019-07-17 22:54:30
    赞同 展开评论 打赏
  • 有几种程序可以考虑一下:
    【1】
    int TwoBranch(Bitree T)
    {
    int s;
    if(T == NULL)
    return 0;
    s = (T->lchild != NULL) && (T->rchild != NULL);
    return s + TwoBranch(T->lchild) + TwoBranch(T->rchild);
    }

    【2】
    int leafnum(Bnode *t)
    {
    int i,j;
    if(t==NULL)return 0;
    else if(t->lchild==NULL && t->rchild==NULL)
    return 1;
    else
    {
    i = leafnum(t->lchild);
    j=leafnum(t->rchild);
    return (i+j);
    }
    }
    【3】
    int countDegreeTwo(TreeNode *root)
    {
    if (root == NULL)
    return 0;
    if (root->left != NULL && root->right != NULL)
    return 1 + countDegreeTwo(root->left) + countDegreeTwo(root->right);
    return countDegreeTwo(root->left) + countDegreeTwo(root->right);
    }
    2019-07-17 22:54:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载