23. Thêm phần từ vào cuối danh sách liên kết vòng

Xem dạng PDF IDE

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho một danh sách liên kết vòng không có có phần tử. Mỗi một nút trong danh sách liên kết vòng có chứa một số nguyên dương

Hãy thêm vào cuối danh sách trên n phần tử số nguyên dương và in danh sách ra

INPUT

  • Dòng đầu tiên gồm một số nguyên dương n
  • Dòng thứ hai là n số nguyên dương a

OUTPUT

  • Gồm một dòng gồm n số nguyên dương theo thứ tự khi in danh sách từ đầu đến cuối.

CONSTRAINTS

  • ~0 \le n \le 10000~
  • ~0 \le a \le 10^9~

INPUT

4
2 6 7 9 

OUTPUT

2 6 7 9

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    24100511  đã bình luận lúc 22, Sep, 2026, 23:21

    include <stdio.h>

    include <stdlib.h>

    typedef struct Node { int data; struct Node* next; } Node;

    Node* createNode(int val) { Node* newNode = (Node*)malloc(sizeof(Node)); newNode->data = val; newNode->next = NULL; return newNode; }

    void addAtTail(Node* head, int val) { Node newNode = createNode(val); if (head == NULL) { *head = newNode; newNode->next = newNode; } else { Node tmp = *head; while (tmp->next != *head) { tmp = tmp->next; } tmp->next = newNode; newNode->next = *head; } }

    void printList(Node* head) { if (head != NULL) { Node* tmp = head; do { printf("%d ", tmp->data); tmp = tmp->next; } while (tmp != head); } printf("\n"); }

    int main() { int n; scanf("%d", &n); Node* head = NULL; for (int i = 0; i < n; i++) { int val; scanf("%d", &val); addAtTail(&head, val); } printList(head); return 0; }

Input
Output
Run