【问题标题】:Add all nodes of a n-ary tree to ArrayList将 n 叉树的所有节点添加到 ArrayList
【发布时间】:2015-11-20 15:09:35
【问题描述】:

将给定树的所有节点添加到ArrayList 的最佳方法是什么?

我应该在递归方法中将 ArrayList 作为参数传递吗?

我正在尝试做一段时间,我的代码无法编译,请帮助。

ArrayList<NodoN<T>> postOrder(boolean ignorarRaiz, ArrayList<T> lista){

        for (int i = 0; i < nodos.size(); i++) {
            ret = ret + nodos.get(i).postOrder(false, lista);
        }

        if (!ingnorarRaiz) {
            lista.add(dato);
        }

        return dato;

    }

【问题讨论】:

  • 请补充您在编译时遇到了什么错误。
  • 你得到什么编译错误,在哪一行?
  • 你能否指定你想要使用的java版本,因为这对于java 8及更高版本的流来说很容易。
  • 看看你的节点类是如何定义的也可能很有价值。
  • 西班牙语是一门优美的语言,但 SO 是一个全球性网站。如果您在此处发布的代码是基于英文的代码,我敢打赌您会得到更多帮助。

标签: java arraylist tree


【解决方案1】:

从您的方法名称看来,您想以后序遍历树,所以我会尝试类似:

ArrayList<NodoN<T>> postOrder(boolean ignorarRaiz, ArrayList<T> lista){

    for (NodoN<T> nodo: nodos) {            
        nodo.postOrder(false, lista);
    }

    if (!ingnorarRaiz) lista.add(nodo);

    return lista;

}

在添加子树节点后,每次调用的节点浏览器都会插入到您的列表中。

【讨论】:

    猜你喜欢
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多