1. 程式人生 > >程式設計實現一個單鏈表節點的刪除

程式設計實現一個單鏈表節點的刪除

【單鏈表節點的刪除】:

//刪除單鏈表的pos位置的節點,返回連結串列頭指標
//pos從1開始計算,1表示刪除head後的第一個節點

node *delete_node(node *head, int pos)
{
    node *item = NULL;
    node *p = head->next;
    int i = 0;
    
    if(p == NULL)
    {
        cout << "Empty Link!" << endl;
        return NULL;
    }
    while(i < pos)              //通過迴圈定位到pos-1位置
    {
        p = p->next;
        ++i;
    }
    if(p != NULL && p->next != NULL)
    {
        item = p->next;
        p->next = item->next;
        delete item;
    }
    return head;
}

摘自《C和C++程式設計師面試祕笈》