将 n 叉树的所有节点添加到 ArrayList

Add all nodes of a n-ary tree to ArrayList

将给定树的所有节点添加到 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;

    }

从你的方法名称来看,你似乎想以 post 的顺序遍历你的树,所以我会尝试类似的方法:

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;

}

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