直接free(p),这样行不通,因为我们不能访问其他结点;
如果我们只能访问该结点,可以尝试将该结点的后继结点的数据复制到当前结点,然后删除后继结点
public static boolean deleteNode (LinkListNode n) {
if( null == n || null == n.next ) return false;
LinkListNode next = n.next;
n.data = next.data;
n.next = next.next;
return true;
}
但是这样做有一个问题,如果我们要删除的是尾结点,这个算法就失效了,如果是尾结点,可以考虑将这个结点置为fake吗?