尝试在链表 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
。
我尝试在 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
。