文章
78
粉丝
0
获赞
0
访问
7.8k
(1)使用递归,如果左或者右都不为空则向下递归相加
(2)
struct node{
int weight;
struct node* left;
struct node* right;
}
(3)
int sum(node* head) {
// 基线条件:空节点,返回 0
if (head == NULL) {
return 0;
}
int sum = head->weight; // ✅ 加上当前节点的权重
// 递归加上左子树的所有权重
if (head->left != NULL) {
sum += sum(head->left); // ✅ 传指针,不是 weight
}
// 递归加上右子树的所有权重
if (head->right != NULL) {
sum += sum(head->right); // ✅ 传指针,不是 weight
}
return sum;
}
登录后发布评论
暂无评论,来抢沙发