`静态类Node {E数据;节点下一个;
public Node(E data) {
this.data = data;
next = null;
}
}
public void deleteAtIndex(int index){
Node temp = head;
for (int i = 1; i < index-1 ; i++) {
temp=temp.next;
}
Node t = temp.next.next;
temp.next = t;
}`
什么需要用Java编写代码,因为提到了我们使用“ temp.next = t;”。到“从列表取消链接已删除的节点”。如果删除最后一行,则代码未提供所需的输出。
让我给你一个示例-
考虑5-> 6-> 10-> 15。假设您要删除10。
逻辑上您想找到6并使其指向15。
第一步这样做将需要您获得指向您的对象的节点(我们要删除的节点)
for (int i = 1; i < index-1 ; i++) {
temp=temp.next;
}
在此for循环中,我们仅找到指向要删除的对象的节点。
Node next = temp.next.next; //15
temp.next = next; // Point 6 to 15
我们将“ 6”的下一个节点设置为要删除的对象的下一个节点。为什么?因为我们希望它是:5-> 6-> 15
您的下一个>]参数保存值为“ 15”的节点。
Temp
为“ 6”。<< [Temp.next
更改之前指向10。更改之后它将指向15。