asv*_*672 0 c++ data-structures singly-linked-list
我创建了一个链接列表,但它只打印第一个值“1”,而不打印其余的值。我有一个插入函数来插入新节点,然后有一个显示函数来打印节点值,但它只打印第一个值。
struct Node {
int n;
Node *next;
};
class LinkedList {
private:
Node *head;
Node *tail;
public:
LinkedList() {
head = NULL;
tail = NULL;
}
~LinkedList(){};
void insert_node(int value) {
Node *new_node = new Node();
new_node->n = value;
new_node->next = NULL;
if (head == NULL) {
head = new_node;
tail = new_node;
}
else {
tail = new_node;
tail->next = new_node;
}
}
void show() {
Node *new_node;
new_node = head;
while (new_node != NULL) {
cout << new_node->n << endl;
new_node = new_node->next;
}
}
};
int main() {
LinkedList L;
L.insert_node(1);
L.insert_node(2);
L.insert_node(4);
L.insert_node(8);
L.show();
}
Run Code Online (Sandbox Code Playgroud)
线条
tail = new_node;
tail->next = new_node;
Run Code Online (Sandbox Code Playgroud)
方法
new_node->next = new_node;
tail = new_node;
Run Code Online (Sandbox Code Playgroud)
因此,不会创建从head到 的链接。new_node
这些行应该是:
tail->next = new_node;
tail = new_node;
Run Code Online (Sandbox Code Playgroud)
首先创建到新节点的链接,然后更新尾指针。