我是 Java 初学者,由于其复杂性,我无法理解 Java 中的链表。所以我的代码很简单。
Node node, head, tail;
head = null; // initializes the head of the linked list to null
int counter = 0;
String inputdata; // input
do
{
System.out.print ("What name would you like stored? (\"quit\" to end) ");
inputdata = stdin.readLine ();
if (!inputdata.equals ("quit"))
{
node = new Node (inputdata);
node.next = head;
// update the head to point to the new front of the list
head = node;
count++;
}
}
while (!inputdata.equals ("quit")); // loop continues until "quit" selected
System.out.println ();
node = head;
///////////////////////////////
String delete;
boolean found;
System.out.println ("What node to delete?");
delete = stdin.readLine ();
do
{
for (int i = 0 ; i <= count ; i++)
{
if (delete.equals (node.data))
{
found = true;
System.out.println ("It is found!");
}
}
}
while (found = false);
这是课
public class Node
{
Node next;
String data;
public Node (String data)
{
this.data = data;
}
}
我了解算法的工作原理。搜索一个节点,当它找到它时,它将在它之前的节点指向正在搜索的节点之后的节点。
每当我搜索节点时,我都会得到 java.lang.nullpointer 异常,这些异常基本上会转化为我的代码,这很糟糕。
我需要帮助,因为每当我搜索如何做到这一点时,我总是问自己“为什么放这个”或“LS 是什么”或“为什么有多种方法以及其中的变量 n 是多少”。
请告诉我我做错了什么以及我需要做什么。