用于查找二叉树节点的有序秩的高效算法

时间:2015-08-19 15:05:55

标签: java algorithm data-structures tree binary-tree

给定二叉树(不一定是二叉搜索树)和该树中的节点,什么是有效的算法(最好是在Java中)来查找该节点的有序等级?

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

1 个答案:

答案 0 :(得分:3)

想象一下最糟糕的情况:每个节点只有一个左子节点,因此整个树成为一个链表。

如果给定root,要计算排名,您需要访问leaf,在这种情况下需要花费O(n)。因此,在最坏的情况下O(n)是您无法在节点中存储其他信息的最佳方法。