它只是一个代码片段,但考虑到其他一切已被编码正确,这会逻辑删除最后一个节点吗?或者我的逻辑是否有问题?
问题回答。
答案 0 :(得分:0)
目前,在退出current
循环后,代码会抛出异常,因为null
为while
。该方法的正确版本(从特定位置删除)可能如下所示:
public static Node delete(Node head, int position)
{
Node traverse = head;
if(position == 0) {
//remember this case
head = head.next;
return head;
}
for(int i = 1; i < position; i++)
traverse = traverse.next;
Node deleteit = traverse.next; //want to skip over this node
traverse.next = deleteit.next;
return head;
}