gpt4 book ai didi

c++ - 确定树的内部路径长度 (C++)

转载 作者:搜寻专家 更新时间:2023-10-31 01:58:35 26 4
gpt4 key购买 nike

好吧,我已经完成了程序的最后一个功能。我遇到了另一个我似乎无法自行修复的树桩。

int Tree::InternalPathLength(Node * r, int value)
{
if(r->left == NULL && r->right == NULL)
{
return 0;
}
return value + InternalPathLength(r->left, value+1) +
InternalPathLength(r->right, value+1);
}

我觉得我离解决方案很近了,但我知道我遗漏了一些东西。我认为这是另一个 if 语句,我尝试了不同的组合,但我最终得到了一个崩溃的程序或 0 作为答案。

如有任何建议或帮助,我们将不胜感激!谢谢!

最佳答案

可能这行得通:

int Tree::InternalPathLength(Node * r, int value)
{
if(r->left == NULL && r->right == NULL)
{
return 0;
}
return value + ( r->left? InternalPathLength(r->left, value+1):0 )
+ ( r->right? InternalPathLength(r->right, value+1):0 );
}

或者只为 NODE 添加 NULL 检查

int Tree::InternalPathLength(Node * r, int value)
{
if (r == NULL ) return 0;
if(r->left == NULL && r->right == NULL)
{
return value +1;
}
return value + InternalPathLength(r->left, value+1) +
InternalPathLength(r->right, value+1);
}

关于c++ - 确定树的内部路径长度 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3878456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com