【问题标题】:Delete a Node from Linked List using key使用键从链表中删除节点
【发布时间】:2021-03-10 13:32:22
【问题描述】:

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

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

这是我创建的通过给定 key 删除节点的方法。但问题是它总是删除唯一的值“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);
   
}

输出

插入删除键 // 我的输入 : 尼亚娜

取消值为:Chiara

即使我想删除键“Niana”,这也是问题所在。总是它删除键“Chiara”

【问题讨论】:

    标签: java arrays linked-list singly-linked-list


    【解决方案1】:

    它只取第二个值,条件n.equals(name) 将始终为false,原因有很多:首先,NodoString 是完全不同的类型,因此它们不太可能相等.此外,即使您设法以某种方式使其成为现实,也没有任何意义,您为什么要创建一个循环来检查所有与您要查找的节点相同的节点并跳过它们?

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

    它也与 java 代码的命名约定相矛盾。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 2017-10-21
      • 2013-08-30
      • 2020-02-04
      相关资源
      最近更新 更多