2

我必须解开二叉树。我的意思是我有以下方法

  public static <T> BinaryNode<T> unthread(BinaryNode<T> root)

它接收一个双线程二叉树,它应该返回一个非线程树 - 这意味着它必须删除曾经为空的附加节点,使它们再次为空。

我认为我应该这样做的方式是为每个节点创建一个链表,然后调用一个辅助方法,该方法将线程树和链表作为参数。然后,遍历树,如果一个节点已经被访问过,这意味着我必须删除它。

我不知道这是否会奏效。你有什么建议?

4

1 回答 1

0

有效 :)。我使用了前序遍历和链表。正如我所说,如果节点在链接列表中并且没有添加它,就是这样。

于 2013-04-07T18:12:12.647 回答