【发布时间】:2022-11-04 08:52:54
【问题描述】:
我需要关于我正在寻找从叶子到叶子的不相交路径(它们不能沿着相同的路径/边缘返回)的任务的建议,以便它们的总和创造最大可能的值,即路径不能相交并且必须是尽可能的好属于总。请注意,路径中断的点(根)不包括在总和中,即。图片。
我根本不知道如何解决这个问题。我附上了试图决定是选择一片叶子的路径还是选择较小的子树的代码,但它不能正常工作。
如果有人有任何学习材料,我将非常感激。先感谢您 所有程序 https://onecompiler.com/c/3ymb7xvzn
int depth(struct node *root, int *res)
{
if(root == NULL) return 0;
int l = depth(root->left, res);
int r = depth(root->right, res);
int max_single_best_Way = max(l+root->data, r+root->data);
int max_root = l+r;
int maximum = max(max_single_best_Way, max_root);
*res = max(*res, maximum);
return maximum;
}
我无法创建一个算法来解决这个问题。我想要一些可以在解决方案中使用的建议和学习材料。
【问题讨论】:
标签: algorithm recursion tree binary-tree binary-search-tree