查找二叉树节点有序排序的高效算法
Efficient algorithm for finding the in-order rank of a binary tree node
给定一棵二叉树(不一定是二叉搜索树)和该树中的一个节点,找到该节点的有序排名的有效算法是什么(最好在 Java 中)?
O(n)
算法可用于遍历(递归或迭代)。有更好的吗?感谢您的任何建议。
想象最坏的情况:每个节点只剩下一个child,于是整棵树就变成了一个链表。
如果给定一个根,要计算排名,您需要访问叶,在本例中成本为 O(n)
。因此,在最坏的情况下,O(n)
是最好的情况,无需在节点中存储额外信息。
给定一棵二叉树(不一定是二叉搜索树)和该树中的一个节点,找到该节点的有序排名的有效算法是什么(最好在 Java 中)?
O(n)
算法可用于遍历(递归或迭代)。有更好的吗?感谢您的任何建议。
想象最坏的情况:每个节点只剩下一个child,于是整棵树就变成了一个链表。
如果给定一个根,要计算排名,您需要访问叶,在本例中成本为 O(n)
。因此,在最坏的情况下,O(n)
是最好的情况,无需在节点中存储额外信息。