Односвязный список в java

Я только что нашел этот сложный вопрос для собеседования в Интернете и надеялся, что кто-нибудь поможет мне разобраться в нем. Это общий вопрос... учитывая односвязный список, поменяйте местами каждый элемент списка попарно так, чтобы 1->2->3->4 стал 2->1->4->3.

Вы должны поменять местами элементы, а не значения. Ответ должен работать для круговых списков, где хвост направлен назад к голове списка. Вам не нужно проверять, указывает ли хвост на промежуточный (не головной) элемент.

Итак, я подумал:

public class Node
{
     public int n;     // value
     public Node next; // pointer to next node
}

Как лучше всего это реализовать? Кто-нибудь может помочь?

9
задан Simon Kiely 24 September 2011 в 13:59
поделиться