Круговой односвязный список

Итак, мой факультет дал нам задание по круговому односвязному списку. Я знаю концепцию, но почему-то не могу правильно выразить ее в коде. Итак, вот мой код простого кругового односвязного списка. Не могли бы вы, ребята, указать, какую ошибку я делаю. Это будет большим подспорьем.

Мой код-

public class Node {
    int data;
    Node next;

    public Node(int data, Node next){
        this.data = data;
        this.next = next;
    }


}

public class problem1 {
  public static void main(String[] args) {
    Node fourth = new Node(5,null);
    Node third = new Node(3,fourth);
    Node second = new Node(4,third);
    Node head = new Node(3,second);
   for(Node n= head; n!=head;n=n.next)
    {
      System.out.println (n.data);
    }

  }
}

person Shahriar    schedule 10.02.2018    source источник
comment
Подсказка: где в циклическом списке вы найдете указатель null next?   -  person FatalError    schedule 10.02.2018
comment
Вам просто нужно замкнуть круг   -  person hovanessyan    schedule 10.02.2018


Ответы (1)


Привет, я считаю, что вам нужен заголовок и хвост. затем установите tail.next в заголовок :) и всякий раз, когда вы создаете новый узел в своем списке, проверьте, является ли header.next() нулевым, и если это так, просто установите header.next() в свой новый узел. и всегда устанавливайте самое новое дополнение рядом с хвостом. Могу привести пример, если нужно. Я нашел прекрасный пример для вас тоже посмотрите на

Как реализовать круговой связанный список в java?

person Javoid    schedule 10.02.2018