Удалить узел из связанного списка, полученный как параметр C ++ - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть класс LinkedList, и я хочу написать метод, который удаляет узел, полученный в качестве параметра в методе в качестве указателя.

Структура метода должна выглядеть следующим образом:

void LinkedList: : removeAt(ListElem *arg);

как мне написать этот метод?потому что я не могу понять это

1 Ответ

0 голосов
/ 06 февраля 2019
void LinkedList: : removeAt(LinkedList *ll, ListElem *arg) {
  if (!ll->head) return; // ll is your linked list object
  if (ll->head == arg) {
    struct ListElem *head = ll->head;
    ll->head = head->next;
    delete head;
    return;
  }
  struct ListElem *current = ll->head;
  while (current->next) {
    if (current->next == arg) {
      struct ListElem *next = current->next;
      current->next = next->next;
      delete next;
      break;
    }
    current = current->next;
  }
}

Обновлено в соответствии с комментариями.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...