尝试在链表 c++ 中附加多个节点,但它只打印 1 个节点

Tried appending multiple nodes in LinkedList c++ but it's just printing 1 node

我尝试在 LinkedList c++ 中附加多个节点,但它只打印 1 个节点,因为我 运行 它。请审查它,并帮助我修复它。

#include <iostream>
using namespace std;

//这里是节点

struct Node {
    int data;
    struct Node* next;
};

// ----------这里是链表------------

class LinkedList {
private:
    Node* head;


public:

    LinkedList()
    {
        head = NULL;
    }

//------------追加函数------------

    void appendNode(int d)
    {
        Node* newNode = new Node;
        Node* nodePtr;

        newNode->data = d;
        newNode->next = NULL;

        if (!head)
        {
            head = newNode;
            
        }
        else
        {
            nodePtr = head;
            while (nodePtr->next)
            {
                nodePtr = nodePtr->next;
                nodePtr->next = newNode;
            }
        }
    }

//----------------显示函数-------------

    void display()
    {
        
        Node* nodePtr;
        nodePtr = head;

        while (nodePtr != NULL)
        {
            cout << nodePtr->data << endl;
            nodePtr = nodePtr->next;
        }
    }

    
};

//------------主要函数------------

int main()
{
    LinkedList ll;

    ll.appendNode(2);
    ll.appendNode(21);
    ll.appendNode(11);
    ll.display();

}

将您的 while 循环更改为:

while (nodePtr->next)
{
    nodePtr = nodePtr->next;
    nodePtr->next = newNode;
    ...
}

while (nodePtr->next)
{
    nodePtr = nodePtr->next;
    ...
}
nodePtr->next = newNode;

此外,在 C++ 中使用 nullptr 而不是 NULL