<分区>
我尝试用 for 循环来做,但没有成功。这是我当前的实现,它创建了一个包含 6 个元素的链表,但我确信有一种方法可以用循环来完成它,因为我的代码非常乏味。
#include <stdio.h>
#inlcude <stdlib.h>
int main(void) {
typedef struct _node {
int data;
struct _node * next;
} node_t;
typedef struct {
node_t * head;
node_t * tail;
} LL_t;
LL_t* L = malloc(sizeof(LL_t));
L->head=malloc(sizeof(node_t));
L->head->data=0;
L->head->next=malloc(sizeof(node_t));
L->head->next->data=1;
L->head->next->next=malloc(sizeof(node_t));
L->head->next->next->data=2;
L->head->next->next->next=malloc(sizeof(node_t));
L->head->next->next->next->data=3;
L->head->next->next->next->next=malloc(sizeof(node_t));
L->head->next->next->next->next->data=4;
L->head->next->next->next->next->next=malloc(sizeof(node_t));
L->head->next->next->next->next->next->data=5;
L->head->next->next->next->next->next->next=NULL;
L->tail=L->head->next->next->next->next->next;
return 0;
}
我的 for 循环不起作用。
node_t* cur = L->head;
for (int i = 0; i < 6; i++) {
cur = malloc(sizeof(node_t));
cur->data = i;
printf("%d\n", cur->data);
if (i == 5) {
cur->next = NULL;
L->tail = cur;
break;
}
cur = cur->next;
}