java - 这段代码具体是做什么的呢?我该如何改变它?

标签 java data-structures linked-list

public void deleteAfter(Node prev){
    prev.setNext(prev.next().next());
}

此方法删除给定前一个节点之后的新节点。有人可以向我解释一下这段代码具体是做什么的,以及如何更改它,这样如果 prev 是列表中的最后一个节点,它就不会出错。

@param prev - 将插入位置之前的节点。

最佳答案

prev.next().next() 获取下一个节点之后的节点(来自给定的节点)。然后将其传递给 prev.setNext 方法,使其成为下一个 节点。这实际上删除了 prevnext next 节点之间的节点。

基本上,它需要 prev -> next_1 -> next_2 ... 并将其转换为 prev -> next_2 ...

如果 prev 是列表中的最后一个节点,则 next() 应该返回 null (我假设)。如果是这种情况,您可以执行 null 检查以避免错误。

public void deleteAfter(Node prev){
    if(prev.next() != null) {
        prev.setNext(prev.next().next());
    }
}

关于java - 这段代码具体是做什么的呢?我该如何改变它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47581900/

相关文章:

java - 在给定开始时间和持续时间的情况下查找任务结束顺序的算法

c - 实现 infixToPostfix 方法,但不知道为什么我第一次推送 '('

c++ - 从单链循环列表中删除特定节点

c - 链表程序未给出预期结果

java - SQL + JPA : return rows with maximum value of single column

java - 动态改变线程池的大小

Python 。独特订购商品列表

java - 停留在如何将项目添加到库存列表java上

java - AspectJ:跟踪新对象初始化

java - 当 USB 端口扫描某些输入时,Java 中的弹出窗口