从java中的列表创建二叉树

时间:2017-01-15 22:21:02

标签: java list binary-tree

我试图根据列表创建二叉树。该列表包含索引0节点,索引1和2,左右子节点。索引3是另一个节点,索引4和5是索引3上节点的左右子节,依此类推。我尝试过像这样的事情

public static HNode buildHTree(List<HNode> list) {
        HNode node = lista.get(0);
        HNode left = lista.get(1);
        HNode right = lista.get(2);
        list.remove(0);
        list.remove(0);
        list.remove(0);
        if(list.size() > 0)
            return buildHTree(list);
        return node;
    }

但这不起作用。你们当中有些人可以给我一些暗示或一些帮助。 HNode类包含:

private Symbol value;
private HNode left, right;

为此设置和吸气。 非常感谢你

1 个答案:

答案 0 :(得分:2)

  

我想告诉我我的想法有什么问题,以及如何更改我的代码以实现我的目标。

你的想法有一点是错误的,你似乎认为你可以写一些代码&#34;然后&#34;改变&#34;它是正确的。这不是一个好的编程方式。

更好/正确的方法是:

  1. 在开始设计之前了解要求,
  2. 在开始编码之前了解算法,
  3. 当您遇到问题时,请阅读您编写的代码并尝试理解实际执行的操作。然后将其与您想要实现的目标进行比较;即你想要写什么。
  4. 并且不要害怕丢弃东西并重新开始。

    具体提示:

    1. 你应该从List<HNode>开始吗?难道它真的不是List<Symbol>吗?
    2. 您是否应该设置左/右字段以将节点放入树结构中?
    3. 您知道列表是否已排序?