我對數據結構太新了,實際上我昨天才開始。下面是代碼:鏈接列表出現問題(添加和打印)
#include <stdio.h>
#include <stdlib.h>
struct node
{
int x;
node *next;
};
void addToList(node *r, int a);
void printList(node *r);
int main()
{
node *root;
root = NULL;
for (int i = 0; i < 5; i++)
{
int a;
scanf("%d", &a);
addToList(root, a);
}
printList(root);
return 0;
}
void addToList(node *r, int a)
{
while (r != NULL)
r = r -> next;
r = (node *)malloc(sizeof(node));
r -> x = a;
r -> next = NULL;
}
void printList(node *r)
{
while (r != NULL)
{
printf("%d ", r -> x);
r = r -> next;
}
printf("\n");
}
我希望程序獲取新的5元到列表中,然後打印它們。但該計劃的結束沒有發生。我的錯是什麼?
應該'空隙addToList(節點* R,INT A){ 而(!R->下一= NULL) R = R - >下; r-> next =(node *)malloc(sizeof(node)); r-> next-> x = a; r-> next-> next = NULL; }' – roottraveller
抱歉,但沒有奏效。 – Atreidex
它定義了第一個元素後工作。我應該永遠定義第一個元素嗎?沒有辦法完全清空列表? – Atreidex