小溪青石 发表于 2014-2-2 11:03:54

单向链表的删除子函数的一个问题

如果把p = pHead改成 p=pHead->pNext,再把下面的p->pNext换成p,为什么最后就不对了呢?求大神解答啊
bool delete_list(PNODE pHead, int pos, int *pVal)
{
        int i = 0;
        PNODE p = pHead;

        while (p ->pNext != NULL && i< pos-1)   
        {
                i++;
                p = p->pNext;
        }

        if (p ->pNext == NULL || i>pos-1)
        {
                return false;
        }

        PNODE q = p->pNext;
        *pVal = q->data;

        p->pNext = p->pNext->pNext;
        free(q);

        return true;

}


页: [1]
查看完整版本: 单向链表的删除子函数的一个问题