taozhenJ 2024-07-12 13:21 采纳率: 78.9%
浏览 5
已结题

链表输出(关键词——链表)

将 1 ~ n 这 n 个数存放在一个链表中,给定相邻两个数的连接关系,请按照顺序输出这个链表。(C++, 需代码) 【输入格式】

第 1 行一个整数,表示 n。

第 2 ~ n 行,每行两个正整数 a, b,表示 a 和 b 相连,并且 a 位于 b 之前(输入格式)

  • 写回答

5条回答 默认 最新

  • Bigliuzi@ 2024-07-12 13:25
    关注
    
    #include <iostream>
    
    using namespace std;
    
    // 定义链表节点结构体
    struct ListNode {
        int val;
        ListNode* next;
        ListNode(int x) : val(x), next(nullptr) {}
    };
    
    // 创建链表函数,返回链表的头节点指针
    ListNode* createLinkedList(int n) {
        if (n <= 0) return nullptr;
        
        ListNode* head = new ListNode(1); // 头节点
        ListNode* curr = head; // 当前节点指针
        
        // 创建链表
        for (int i = 2; i <= n; ++i) {
            ListNode* newNode = new ListNode(i);
            curr->next = newNode;
            curr = newNode;
        }
        
        return head;
    }
    
    // 输出链表元素函数
    void printLinkedList(ListNode* head) {
        ListNode* curr = head;
        while (curr) {
            cout << curr->val << " ";
            curr = curr->next;
        }
        cout << endl;
    }
    
    int main() {
        int n;
        cout << "Enter the number n: ";
        cin >> n;
        
        ListNode* head = createLinkedList(n); // 创建链表
        
        cout << "Linked list elements: ";
        printLinkedList(head); // 输出链表元素
        
        // 释放链表内存
        ListNode* curr = head;
        while (curr) {
            ListNode* temp = curr;
            curr = curr->next;
            delete temp;
        }
        
        return 0;
    }
    这段代码包括了以下几个关键步骤:
    
    ListNode 结构体:定义了链表节点的结构,包含一个整数值和指向下一个节点的指针。
    
    createLinkedList 函数:根据输入的整数 n,创建包含数字 1 到 n 的链表。使用循环逐个创建节点,并连接起来形成链表,返回链表的头节点指针。
    
    printLinkedList 函数:遍历链表并顺序输出链表中的每个元素。
    
    main 函数:在主函数中,首先输入 n,然后调用 createLinkedList 创建链表,再调用 printLinkedList 输出链表元素。最后释放链表占用的内存。
    
    这样,你可以按照顺序输出从 1 到 n 的链表元素。
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 7月20日
  • 已采纳回答 7月12日
  • 修改了问题 7月12日
  • 创建了问题 7月12日