找到任意两个节点之间的最长路径

发布于 2024-09-07 07:12:44 字数 322 浏览 3 评论 0原文

我有一棵二叉树。我需要编写 Java 递归方法来给出两个节点之间的最长路径。

例如,如果以下树是 7 (7-8-5-13-15-18-16-17),则最长路径。

http://img294.imageshack.us/img294/130/treeb.jpg

有什么办法可以解决这个问题呢?

(方法: public static int permanentPath(Node n) )

I have a binary tree. I need to write Java recursive method that will give longest path between two nodes.

For example longest path if following tree is 7 (7-8-5-13-15-18-16-17).

http://img294.imageshack.us/img294/130/treeb.jpg

What's the way to resolve this problem?

(The method: public static int longestPath(Node n) )

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

萌面超妹 2024-09-14 07:12:44

考虑到这是家庭作业,我会看看 深度优先搜索广度优先搜索

偏好深度优先

Considering this is homework I'd look at Depth-First search and Breadth-First search.

With a preference for depth-first

瞄了个咪的 2024-09-14 07:12:44

首先,您可以编写一个返回树的高度的函数,该高度等于最长路径的长度。

To start with, you can write a function that returns the height of the tree, which is equal to the length of the longest path.

你的往事 2024-09-14 07:12:44

这里有一个线索:

首先,你能解决这个更简单的问题吗?

从整数列表中查找最大值。

其次,只要节点有子节点,就会出现一条新路径。

Here is a clue:

First, can you solve this simpler problem?

Find the max from a list of integers.

Second, a new path occurs whenever a node has children.

眉目亦如画i 2024-09-14 07:12:44

另请注意,问题是 NP 完全问题,因此您可能将无法找到多项式算法。

Also note that the problem is NP-complete, so you probably won't be able to find a polynomial algorithm.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文