При создании ручного связанного списка с использованием рекурсивных методов я не могу понять, почему мой метод Insert Before отключает список после добавления нового узла. Список не отсортирован. Я новичок в этом, и любая помощь будет оценена по поводу того, почему это происходит.Вставка рекурсивного единственного связного списка Перед тем, как отключить остальную часть списка
Мой класс узел
class Csc2001Node
{
protected char ch;
protected Csc2001Node next;
/*
* Construct a Csc2001Node with the given character value
* @param c - The character
*/
public Csc2001Node (char c)
{
this.ch = c;
this.next = null;
}
}
Мои методы из Linked класса List
/*
* Recursively prints characters in a list
* @param head The had of current list
* @return Current list
*/
private String recursePrintList(Csc2001Node head){
if(head == null)
return "List is empty\n";
else
while(head.next!=null)
{
return head.ch + "\n" + recursePrintList(head.next);
}
return head.ch + "\n";
}
/*
* Wrapper method for printing list
* @return the list as a string
*/
public void recursePrintList(){
System.out.print(recursePrintList(head));
}
/*
* Inserts a character before first occurrence of another specified
* character in the list.
*
*/
public Csc2001Node insertBefore(char key, Csc2001Node head, char toInsert)
{
if(head==null){
return head = new Csc2001Node(toInsert);
}
else if(head.ch == key)
return new Csc2001Node(toInsert);
else
head.next = insertBefore (key, head.next, toInsert);
return head;
}
/*
* Wrapper method for inserting a character before another
*/
public void insertBefore(char target, char toInsert){
head = insertBefore(target, head, toInsert);
}
Вывод о том, что происходит
Adding the characters a, s, t, e, r to the list and printing out the list
e
a
s
t
e
r
Testing if the character r is in the list, print out Yes if it is and No otherwise
Yes
Printing out the value of size for this list
6
Trying to insert Y before s in the list and printing out the list
e
a
Y
Printing out the value of size for this list
3
Trying to insert V before e into the front of the list and printing out the list
V
спасибо! –