Почему функция добавления не работает в связанном списке - PullRequest
0 голосов
/ 28 мая 2020

Мне любопытно, в чем разница в двух приведенных ниже функциях:

    void Add(T x)
    {
        if (head == nullptr)
        {
            head = (new Node<T>());
            head->set(x);
            head->set_next(nullptr);
            return;
        }
        Node<T> *temp = head;
        while (temp->get_next() != nullptr)
        {
            temp = temp->get_next();
        }
        temp->set_next(new Node<T>());
        (temp->get_next())->set(x);
        (temp->get_next())->set_next(nullptr);
    }
   void Add(T x)
    {
        Node<T> *temp = head;
        while (temp != nullptr)
        {
            temp = temp->get_next();
        }
        temp = new Node<T>();
        temp->set(x);
        temp->set_next(nullptr);
    }

Первая работает правильно, вторая выдает ошибку сегментации. Это почему? Я думал, что результат должен быть таким же, просто хотел сделать код немного короче, но мне явно чего-то не хватает

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