这段代码具体用于什么?我怎么能改变它?

2 java linked-list data-structures

public void deleteAfter(Node prev){
    prev.setNext(prev.next().next());
}
Run Code Online (Sandbox Code Playgroud)

此方法删除给定prev节点之后的新节点.有人可以向我解释这段代码的具体步骤,以及如何更改它,以便如果prev是列表中的最后一个节点,它将不会出错.

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

Bil*_*ard 6

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

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

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

public void deleteAfter(Node prev){
    if(prev.next() != null) {
        prev.setNext(prev.next().next());
    }
}
Run Code Online (Sandbox Code Playgroud)