#java #linked-list
#java #связанный список
Вопрос:
Я пытаюсь заставить свою функцию searchReturn работать, но, похоже, не могу ее получить. Кроме того, в нем говорится, что я должен вызвать свой текущий где-то в другом месте, но я не уверен, как еще это сделать, поэтому я указал его как private Node current; в начале моего кода. У меня также возникают проблемы при попытке увеличить i, чтобы при достижении любого числа в моем тестовом файле возвращался этот узел.
Вот моя функция возврата поиска:
public class List {
private Node head;
private int length;
private Node current;
//Making the LinkedList, with the head as a new Node
//and the size of the list set to 0
public List(){
length = 0;
}
public boolean isEmptyList(){
if (length == 0){
return true;
}
else{
return false;
}
}
//SearchReturn(L, key): returns a pointer to the Node to the index
public Node searchReturn(int key) {
Node current = head;
while(current != null) {
key ;
}
return current;
}
Комментарии:
1. ваш цикл while выглядит как приятель с бесконечным циклом… вы вообще не меняете текущее значение… вы просто увеличиваете значения ключа. Для проверки вставьте System.out.println для печати текущего содержимого узла.. и вы поймете, о чем я говорю
2. @ShreyasSarvothama, я тоже об этом думал, вот почему у меня это было раньше:
public Node searchReturn(int key) { Node current = head; while(int i < key; i ) { current = current.getNext(); } return current;
но это тоже работало не слишком хорошо3. скопируйте и вставьте весь ваш код, вы не перемещаете свой текущий код.. Я чувствую, что в вашей программе есть логическая ошибка. Как вы вставляете весь этот код, вставьте его в свой вопрос
Ответ №1:
Вам нужно продвинуть узел к следующему key
раз:
public Node searchReturn(int key) {
Node retVal = head;
int i = 0;
while(i < key) {
if (retVal == null) {
return null;
}
retVal = retVal.next();
i ;
}
return retVal;
}
Комментарии:
1. Извините, но что такое retVal?
2. @Jim локальная переменная, используемая для хранения значения , которое вы хотите вернуть в урну. Это определено в первой строке метода.
3. Я продолжаю получать эту ошибку, когда пытаюсь запустить свой тестовый файл в моей программе: исключение в потоке «main» java.lang. Исключение NullPointerException Есть идеи, почему он все еще говорит NullPointer даже после того, как я отредактировал searchReturn?
4. @Jim пожалуйста, поделитесь своим тестом и трассировкой стека.
5. это немного длинновато для теста, поэтому вот тестовая ссылка pastebin.com/rErheKYf , и это весь мой код linkedlist code, у меня также есть node one, но это не должно мешать этому: pastebin.com/c1QCtvEz