【发布时间】:2013-02-28 13:21:44
【问题描述】:
我试图在 BST 中找到一个节点的有序后继。下面是我的示例代码。
public TreeNode getInorderSuccesor(TreeNode t)
{
if(t == null)
{
return null;
}
if(t.getRight()!=null)
{
t = t.getRight();
while(t.getLeft()!=null)
{
t = t.getLeft();
}
return t;
}
else
{
TreeNode parent = t.getParent();
while(parent!=null && parent.getLeft() != t)
{
t = parent;
parent = t.getParent();
}
return parent;
}
}
如果有任何条件会失败,请告诉我。如果有些人可以共享算法/代码/ sudocode 以找到没有父节点的顺序后继者,还有一件事。谢谢!!!
【问题讨论】:
-
您可以简单地搜索树中比当前节点大的最小节点。如果你有相同值的节点,事情会稍微复杂一些。
标签: algorithm data-structures tree