【2 线性表】循环单链表,无头结点,p指向中间位置结点,删除前驱结点。

【2 线性表】循环单链表,无头结点,p指向中间位置结点,删除前驱结点。_第1张图片

基本思想: 

        p为已知结点,设置结点q满足q->next->next为p,即p的前驱的前驱为q;

        pre为q->next,即p的前驱;

        连接pq,释放pre。

Linklist Del_Prior(Linklist p){
    LNode *pre,*q=p;
    while(q->next->next!=p)        //找p的前驱的前驱
        q=q->next;
    pre=q->next;                   //pre为p前驱
    q->next=p;
    free(pre);
    return p;
}

你可能感兴趣的:(2,线性表,算法)