c - 以正确的顺序打印链表

标签 c printing linked-list

我正在尝试打印我在 C 中创建的链表,但打印顺序错误,我不明白为什么。我正在正确分配指针。有人可以帮我吗?这是我的代码:

struct list_el {
    int val;
    struct list_el * next;
};

typedef struct list_el item;

void main() {
    item *curr, *head;
    int value;
    head = NULL;

    scanf("%d", &value);

    while (value != 0){
        scanf("%d", &value);
        curr = (item *)malloc(sizeof(item));
        curr->val = value;
        curr->next = head;
        head = curr;
}
    curr = head;

    while (curr) {
        printf("%d\n", curr->val);
        curr=curr->next;
    }
    return 0;
}

最佳答案

scanf("%d", &value);

while (value != 0){
    curr = (item *)malloc(sizeof(item));
    curr->val = value;
    curr->next = head;
    head = curr;
    scanf("%d", &value);
}

关于c - 以正确的顺序打印链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26821570/

相关文章:

java - 节点(和对象)相互分配时实际如何工作

c - 如何转换 sockaddr_storage 并避免违反严格的别名规则

c - 移植到较新的 OpenCV 'C' 接口(interface);未找到 cv.h 文件

java - JSP 中的字符串数组 (String[ ][ ]) 输出

css - 打印时 float 框不会 float

perl - 查找文件中所有相同的字符串,然后在 perl 中打印值

c - 为什么c语言中的putchar()中x - x什么都没有?

c - C 中的结合性和优先级

algorithm - 如何找到单链表的交集

java - 在递归方法中返回错误的计数