【问题标题】:Unthreading a binary tree解开二叉树的线程
【发布时间】:2013-04-07 17:42:10
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 什么是“双线程树”?
  • 也许你的意思是“双重链接”?这意味着子节点有一个向上的引用,而父节点也有向下的引用。
  • 我认为OP是指像堆数据结构中的二进制节点,并将它们转换为像链表中的单链接节点。
  • 他们教给我的是双线程二叉树,这意味着它的左右链接

标签: java binary-tree


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-01-09
    • 1970-01-01
    • 2012-02-28
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    • 2013-05-26
    相关资源
    最近更新 更多