单链表分配问题(nullptr)

时间:2017-05-21 21:52:48

标签: c++ linked-list nullptr

这个简单的链接列表有什么问题?

// linked_lst1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

using namespace std;

class Node
{
    int data;
    Node* next;
    friend class LinkedList;
};

class LinkedList
{
private:
    Node* s;
public:
    LinkedList() : s(NULL)
    {};

    void add(int x)
    {
        Node* s1 = new Node();
        s1 = s;

        if (!s1)
        {
            s->data = x;

            return;
        }

        while (s1->next)
            s1 = s1->next;

        Node* temp = new Node;
        temp->data = x;


        s1->next = temp;
        temp->next = NULL;
    }

    void showList()
    {
        Node* s1 = new Node;
        s1 = s;

        while (s1)
        {
            cout << s1->data << " ";
            s1 = s1->next;
        }
    }
};

这是主要部分:

int main()
{

    LinkedList list;

    list.add(3);
    list.showList();

    return 0;
}

我认为s->data = x;中存在分配问题,但我不知道如何解决它......

请注意,这只是一个教育简单的代码,我不想使用模板等。

我想,我弄错了。

1 个答案:

答案 0 :(得分:1)

您创建一个新节点,然后立即覆盖s1以指向指向的内容 - 您将失去对新创建节点的所有访问权。