所以我写了一个 linkList 来保存学生引用和下一个引用。我对插入没有任何问题。另一方面,我需要有关删除和查找该项目的帮助。所以基本上我使用 find 方法来查找学生对字符串的引用。然后使用delete方法删除与该引用对应的节点。
public void deleteStudentNode(StudentNode delete)
{
StudentNode it = new StudentNode();
delete = shead;
it = shead;
//StudentNode b = new StudentNode();
while(it.getSptr() != findStudentByName(""))
{
delete = it;
it = it.getSptr();
}
delete.setSptr(null);
setShead(delete);
//d.setStudent(null);
}
public StudentNode findStudentByName (String findName)
{
StudentNode find = shead;
while(find.getStudent().getName() != findName)
{
if(find.getSptr() == null)
return null;
else
find = find.getSptr();
}
return find;
}
最佳答案
我建议为您的单链表实现Iterable
接口(interface)。之后您需要做的就是
public void deleteByName(StudentList studentList, String nameToDelete) {
Iterator iterator = studentList.iterator();
while (iterator.hasNext()) {
if(iterator.next().getName().equals(nameToDelete)) {
iterator.remove();
}
}
}
提示,要迭代单链表,您需要 2 个指针:当前元素和前一个元素。
关于java - 通过搜索引用java删除节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42930267/