标签: java algorithm data-structures tree binary-tree
给定二叉树(不一定是二叉搜索树)和该树中的节点,什么是有效的算法(最好是在Java中)来查找该节点的有序等级?
通过遍历(递归或迭代)可以实现O(n)算法。还有更好的吗?谢谢你的任何建议。
O(n)
答案 0 :(得分:3)
想象一下最糟糕的情况:每个节点只有一个左子节点,因此整个树成为一个链表。
如果给定root,要计算排名,您需要访问leaf,在这种情况下需要花费O(n)。因此,在最坏的情况下O(n)是您无法在节点中存储其他信息的最佳方法。