Advertisement
congdantoancau

Delete All X

Jan 20th, 2018
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.54 KB | None | 0 0
  1. void delAllX(list &l, int x)
  2. {
  3.     for (node *cur = l.pHead; cur->pNext != NULL;)
  4.     {
  5.         node *pBuffer;
  6.         while (l.pHead != NULL && l.pHead->data == x)
  7.         {
  8.             pBuffer = l.pHead;
  9.             l.pHead = l.pHead->pNext;
  10.             cur = l.pHead;
  11.             delete pBuffer;
  12.             if (l.pHead == NULL)
  13.             {
  14.                 l.pTail = NULL;
  15.                 return;
  16.             }
  17.         }
  18.  
  19.         if (cur->pNext->data == x)
  20.         {
  21.             if (cur->pNext == l.pTail)
  22.                 l.pTail = cur;
  23.             pBuffer = cur->pNext;
  24.             cur->pNext = cur->pNext->pNext;
  25.             delete pBuffer;
  26.         }
  27.         else
  28.         {
  29.             cur = cur->pNext;
  30.         }
  31.        
  32.     }
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement