Как написать методы получения рекурсии в двусвязном списке? - PullRequest
0 голосов
/ 05 июля 2018

вот мой код

public class LinkedListDeque<T> implements Deque {

private Node sentinel;
private int size;

private static class Node<T> {
    private T item;
    private Node pre;
    private Node next;

    public Node(T i, Node p, Node n) {
        item = i;
        pre = p;
        next = n;
    }

public LinkedListDeque() {
    size = 0;
    sentinel = new Node(null, null, null);
    sentinel.next = sentinel;
    sentinel.pre = sentinel;
}

public LinkedListDeque(T item) {
    size = 1;
    Node first = new Node(item, sentinel, sentinel);
    sentinel = new Node(null, first, first);

}

public Object getRecursive(int index) {}


}

Я просто не могу понять, как это сделать. Я могу сделать это по-своему. Я не знаю, с чего начать строить методы рекурсии.

1 Ответ

0 голосов
/ 05 июля 2018
public Node getNode(Node n, int index, int pos) {
    if (index == pos) {
       return n;
    }
    if (index > pos || n == null) {
      return null;
    }
    return getNode(n.next, index, pos++);
}

Я считаю, что это то, что вы хотите, и первоначальный вызов с pos = 0 и заголовком LinkedList. Я думаю, что вам нужно посмотреть, как работает рекурсия, потому что вы даже не попытались решить проблему.

...