java - 查找二叉树节点有序排序的高效算法

标签 java algorithm data-structures tree binary-tree

给定一棵二叉树(不一定是二叉搜索树)和该树中的一个节点,找到该节点的有序排名的有效算法(最好是 Java)是什么?

O(n) 算法可以通过遍历(递归或迭代)实现。有更好的吗?感谢您的任何建议。

最佳答案

想象最坏的情况:每个节点只有一个左 child ,所以整棵树变成了一个链表。

如果给定一个根,要计算等级,您需要访问叶,在本例中成本为 O(n)。因此,O(n) 在最坏的情况下是您可以在不在节点中存储额外信息的情况下实现的最佳情况。

关于java - 查找二叉树节点有序排序的高效算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32099264/

相关文章:

java - 当用户单击 "x"按钮时,我可以在 Java Swing 中做什么来最小化窗口(而不是关闭它)?

algorithm - 寻找链接词

c++ - 结构数组的外部问题c++

java - CDI 和 JNDI 服务有什么关系?

java - Android 写入文件时出现 NullPointerException

arrays - 从两个数组中查找特定的元素总和

algorithm - 寻找最小化树深的根

java - 记录到树

java - PropertyPlaceholderConfigurer 从 XML 文件中读取(Apache Commons 配置)

algorithm - 如何计算分类错误率