Я создаю свой первый связанный список, и, хотя я понимаю, что списки с двойной связью действительно предназначены для возврата назад, я пытаюсь создать метод, который перемещает текущий узел назад в списке одним узлом в объединенном списке SINGLY.Перемещение назад в одиночном списке?
Вот что я до сих пор, я включил мои перейти к следующему для справки и конструкторов:
//Paramaterized construct
public ListNode(int aData, ListNode aLink) {
this.data= aData;
this.link = aLink;
}
}
private ListNode head; //First element
private ListNode current; //Current node of interest
private ListNode previous; //Node behind current
public void goToNext() {
previous = current;
current = current.link;
}
//TODO: Fix previous
public void goToPrev() {
if (current != head) {
}
else
System.out.println("Current node is the head, sorry");
Я забыл добавить свой частный класс ListNode:
private class ListNode
{
private int data;
private ListNode link;
//Default construct
public ListNode()
{
this.data = data;
this.link = link;
}
//Paramaterized construct
public ListNode(int aData, ListNode aLink)
{
this.data= aData;
this.link = aLink;
}
}
Я Думаю, что мне нужно выполнить итерацию с начала списка, пока не найду узел, который имеет next
, равный моему текущему узлу. Но я не уверен, как точно настроить этот цикл и иметь правильное тело.
Что до «головы»? –
@DavidChoweller В моем случае «последователь» является предыдущим и каким будет лидером? Текущий? Я немного не уверен в том, что будет здесь последователем –