开发者社区> 问答> 正文

删除任何索引的节点

对于删除任何索引的节点,我无法理解代码的最后一行“ temp.next = t;” 静态类Node {E data; 节点下一个; 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;”。到“从列表取消链接已删除的节点”。如果删除最后一行,则代码未提供所需的输出。

问题来源:stackoverflow

展开
收起
七天一失眠 2020-04-04 18:42:04 1540 0
1 条回答
写回答
取消 提交回答
  • 做一个优秀的阿里云志愿者

    让我举一个例子 -

    考虑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”的节点。

    温度为“ 6”。

    更改之前的Temp.next指向10。更改之后将指向15。


    答案来源:stackoverflow

    2020-04-04 18:42:22
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载