这个代码会删除链表中的最后一个节点吗



这只是一个代码片段,但考虑到其他所有内容都编码正确,这会在逻辑上删除最后一个节点吗?还是我的逻辑有问题?

问题已回答。

当前,代码在退出while循环后会抛出异常,因为current将是null。该方法的正确版本(从特定位置删除)可能如下所示:

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;
}

相关内容

  • 没有找到相关文章

最新更新