使用键从链表中删除节点



我想通过给定的键从链表中删除一个节点。链接列表包含以下类型的数据

List nd = new List ();

nd.insertdata(" Himasha ");
nd.insertdata(" Chiara ");
nd.insertdata(" Angel ");
nd.insertdata(" Niana ");
nd.insertdata(" Romeli ");

这是我创建的通过给定键删除节点的方法。但问题是它总是删除唯一的Value;Chiara";

public void Deleteobj (String name ) {
Nodo n = Head ;

while(n. equals(name) ){
n= n.next ;

}

Nodo n1 = n.next ;   //n1 equals the delete node
n.next = n1.next ;
System.out.println("The  cancellation value is : "+ n1.data);

}

输出

插入要删除的密钥//我的输入:Niana

取消值为:Chiara

这就是问题所在,尽管我想删除";Niana"总是它删除键";Chiara";

只取第二个值,条件n.equals(name)将始终为false,原因有多种:首先,NodoString是完全不同的类型,因此它们不太可能相等。此外,即使你以某种方式成功地实现了这一点,这也没有意义,为什么你要做一个循环,检查所有与你想要的节点相等的节点,然后跳过它们?

所以这就是你得到输出的原因。循环在第一次运行时中断,因此您的n就是head。你把n1作为nnext,这是第二项,这就是你打印出来的。

此外,它还与java代码的命名约定相矛盾。

还有更多的问题,但你应该先解决这个问题。

相关内容

  • 没有找到相关文章

最新更新