删最后一个结点的时候会异常退出,应该怎么改?

bool DoubleList::deleteNode(doubleNode *head) {
    auto prev = head;
    auto delP = head -> next;
    int location;
    cout << "Confirm the deletion location" ;
    cin >> location;
    for (int i = 1; i < location; ++i) {
        prev = prev ->next;
        delP = delP ->next;
    }
    if (!prev ->next){
        cout << "False to delete it!" << endl;
        return false;
    }
    prev ->next = delP ->next;
    delP ->next ->prior = prev;
    delete delP;
    return true;
}

这是一个双链表的删除操作,删最后一个结点的时候会异常退出,应该怎么改?