我的枚举器中的 MoveNext 方法有问题。我需要二叉搜索树的迭代器。在我的枚举器的构造中,我将 Node 初始化为树的根。当前是我为下一项返回的值。此方法 moveNext 的代码返回错误值。
public bool MoveNext()
{
if (Current == null)
Current = node.Value;
else if (node.Left != null)
{
node = node.Left;
Current = node.Value;
}
else if (node.Right != null)
{
node = node.Right;
Current = node.Value;
}
else
{
node.Value = Current;
do
{
if (node.Parent == null)
return false;
node = node.Parent;
} while (node.Right == null);
Current = node.Value;
}
return true;
}