#java #рекурсия #структуры_данных #списки #связывание_данных
Есть DDS DoubleNode, которая является двунаправленным списком: public class DoubleNode { public int value; public DoubleNode prev; public DoubleNode next; public DoubleNode(int value, DoubleNode prev, DoubleNode next) { this.value = value; this.prev = prev; this.next = next; } а вот что я пытаюсь сделать, так это построить такую Node, зная только количество элементов в ней (значения элементов выбираются случайно). При всем при этом построить хочу рекурсивно, сваял вот такой метод: public static DoubleNode doubleNodeGenRec (int length) { return (length == 0) ? null : new DoubleNode((int)(Math.random()*10), null, doubleNodeGenRnd(--length)); } как новому элементу передать ссылку на DoubleNode prev;? выходит, что строится Node в одну сторону, т.к. в методе туда передается просто null, и в результате выходит просто связанный список. чем заменить этот null?
Ответы
Ответ 1
public DoubleNode(int value) { this.value = value; } public static DoubleNode doubleNodeGen(int length) { return doubleNodeGenRec(length, null); } private static DoubleNode doubleNodeGenRec(int length, DoubleNode prev) { if (length == 0) { return null; } int value = (int) (Math.random() * 10); DoubleNode node = new DoubleNode(value); node.prev = prev; node.next = doubleNodeGenRec(length - 1, node); return node; }
Комментариев нет:
Отправить комментарий