C语言链表反转:createlist() 函数实现

本文将详细解析C语言链表反转中 createlist() 函数的实现。该函数负责创建链表并接收用户输入的数据。

代码示例

#include <stdio.h>
#include <stdlib.h>

struct ListNode {
    int data;
    struct ListNode *next;
};

struct ListNode *createlist() {
    struct ListNode *head = NULL;
    struct ListNode *tail = NULL;
    int n;
    
    scanf('%d', &n);
    while (n != -1) {
        struct ListNode *newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
        newNode->data = n;
        newNode->next = NULL;
        
        if (head == NULL) {
            head = newNode;
            tail = newNode;
        } else {
            tail->next = newNode;
            tail = newNode;
        }  
        scanf('%d', &n);
    }
    
    return head;
}

代码解释

  1. 初始化headtail 指针初始化为 NULL,表示空链表。
  2. 输入数据:使用 scanf() 函数循环读取用户输入的整数,直到输入 -1 为止。
  3. 创建节点:每次循环中,使用 malloc() 函数分配一个新的 ListNode 结构体内存,并将用户输入的整数赋值给 newNode->datanewNode->next 初始化为 NULL
  4. 连接节点
    • 如果是第一个节点,则将 headtail 指针指向新节点。
    • 否则,将 tail->next 指向新节点,并将 tail 指针指向新节点,实现链表的连接。
  5. 返回链表头指针:最后返回链表的头指针 head

代码功能

createlist() 函数实现了以下功能:

  • 动态创建链表节点。
  • 接收用户输入的整数作为链表节点的数据。
  • 将节点连接成链表,并返回链表的头指针。

总结

本篇博客详细解析了 createlist() 函数的实现过程,通过示例代码和解释,帮助读者理解如何创建链表并进行数据输入。在后续的链表操作中,我们可以使用该函数来创建链表,并进行其他操作。

欢迎关注我的博客,获取更多关于C语言和数据结构的知识。

C语言链表反转:createlist() 函数实现

原文地址: https://www.cveoy.top/t/topic/fFEk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录