1
14
也许就这么简单:
它比人们乍一看所想的要复杂得多。考虑以下树:
在这种情况下,根节点甚至不在最长路径中(
因此,您必须执行以下操作:对于每个节点
然后,决定哪个组合使路径长度最大化:
|
2
12
正确的算法是:
因为我不明白你到底在说什么。你能用手举一个例子吗?还是试着更好地解释?这样你就可以更好地理解它是否正确。 您似乎在尝试一个递归实现,基本上与刚才为二叉树简化的实现相同。但是,对于这个问题,您的代码似乎相当复杂。检查讨论 here 更简单的实现。 |
3
2
|
4
2
|
5
2
|
6
2
考虑到@phimuemue示例和@IVlad solution,我决定亲自检查一下,下面是我在python中对@IVlad solution的实现:
|
7
1
我觉得你把事情搞得太复杂了。
弄清楚之后,检查树递归推理如下:
|
8
1
如果,对于每个节点
对于每个终端节点(具有
现在,每个节点的h
(您需要找出是什么替换了两个“?”占位符。有一些选择使这一战略奏效。我亲自测试过。)
那么,
为了提高效率,您可以使用 memoization 或者将其转换为使用堆栈的非递归计算。 |
9
1
嗯,如果我已经正确地理解了你的问题,这里是我的解决方案[但是在C++中(对不起)]:
|
Zevvysan · 为什么我的打印函数之一要删除节点? 6 年前 |
user9573040 · 递归二叉树高度 6 年前 |
Dipesh Desai · 在二叉树haskell中搜索值 6 年前 |
ibrahim · “main”已停止工作-C++[开发人员++] 7 年前 |