题目
实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。给定待删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true
分析
因为是单向链表,所以没法直到该节点的pre节点,不能用常规思维pre->next来做;
一个好方法是,把下一个节点的值赋值给当前节点,然后删除下一个节点;
代码
import java.util.*;
public class Remove {
public boolean removeNode(ListNode pNode) {
if(pNode.next==null){
return false;
}
pNode.val = pNode.next.val;
pNode.next = pNode.next.next;
return true;
}
}