Untitled

 avatar
unknown
plain_text
2 months ago
1.3 kB
15
Indexable

// declare "struct Node *delTemp;" globally

void deleteNodeR(int loc, int currLoc)
{
    if (currLoc <= loc)
    {
        if (pHead)
        {
            if (currLoc == 0)
            {
                delTemp = pHead;
            }
            if (loc == 0)
            {
                if (pHead == pTail)
                {
                    pHead = pTail = NULL;
                }
                else
                {
                    pHead = pHead->pNext;
                    pHead->pPrev = NULL;
                }
                free(delTemp);
            }
            else
            {
                if (currLoc == loc)
                {
                    if (delTemp == pTail)
                    {
                        pTail = pTail->pPrev;
                        pTail->pNext = NULL;
                    }
                    else if (delTemp)
                    {
                        delTemp->pPrev->pNext = delTemp->pNext;
                        delTemp->pNext->pPrev = delTemp->pPrev;
                    }
                }
                else
                {
                    delTemp = delTemp->pNext;
                    deleteNodeR(loc, currLoc + 1);
                }
            }
        }
    }
}
Leave a Comment