【正确答案】
【答案解析】可以分为两种情况来讨论:
①若待删除的结点为链表尾结点,则无法删除,因为删除后无法使其前驱结点的next指针置为空;
②若待删除的结点不是尾结点,则可以通过交换这个结点与其后继结点的值,然后删除后继结点。
具体实现代码如下:
public boolean deleteNode(Node n){
if(n==null || n.next==null)
return false;
int tmp=n.data;
n.data=n.next.data;
n.next.data=tmp;
n.next=n.next.next;
return true;
}