Python 查找二叉树的节点数目

计算节点的数目

def leave(root): #递归求叶子节点个数
if root==None:
 return 0
else:
 a = (1+leave(root.lchild)+leave(root.rchild))
return a

计算叶子结点的数目

def leave1(root): #递归求叶子节点个数
if root==None:
 return 0
elif root.lchild ==None and root.rchild == None :
 return 1
else:
 return (leave1(root.lchild)+leave1(root.rchild))

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用递归的方式实现查找叉树结点个数。具体实现如下: ```c #include <stdio.h> #include <stdlib.h> // 定义二叉树结点结构体 struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; }; // 创建二叉树结点 struct TreeNode* createNode(int val) { struct TreeNode* node = (struct TreeNode*)malloc(sizeof(struct TreeNode)); node->val = val; node->left = NULL; node->right = NULL; return node; } // 递归查找叉树结点个数 int countNodes(struct TreeNode* root) { if (root == NULL) { return 0; } // 左子树结点个数 + 右子树结点个数 + 1(根结点) return countNodes(root->left) + countNodes(root->right) + 1; } int main() { // 创建一棵二叉树 struct TreeNode* root = createNode(1); root->left = createNode(2); root->right = createNode(3); root->left->left = createNode(4); root->left->right = createNode(5); root->right->left = createNode(6); // 查找叉树结点个数 int count = countNodes(root); printf("The number of nodes in the binary tree is: %d\n", count); return 0; } ``` 在上面的代码中,我们定义了一个 `countNodes` 函数,该函数使用递归的方式查找叉树结点个数。如果当前结点为空,则返回 0;否则,递归计算左子树结点个数、右子树结点个数以及根结点,最后将三者相加即为二叉树结点个数。在 `main` 函数中,我们创建了一棵二叉树,并调用 `countNodes` 函数查找结点个数,最后输出结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值