c言語のcreatelist関数の宣言文を教えてください

C言語では、createlist関数は次のように宣言できます。

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

struct ListNode* createlist(int arr[], int n) {
    struct ListNode *head = NULL;
    struct ListNode *curr = NULL;

    for (int i = 0; i < n; i++) {
        struct ListNode *newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
        newNode->val = arr[i];
        newNode->next = NULL;

        if (head == NULL) {
            head = newNode;
            curr = newNode;
        } else {
            curr->next = newNode;
            curr = curr->next;
        }
    }

    return head;
}

たとえば、与えられた配列から連結リストを作成するために使用される createlist 関数の宣言は次のとおりです。 関数は最初に、整数 val と次のノードへのポインタ next を含む構造体 ListNode を定義します。 次に関数 createlist を宣言しますが、この関数の引数は整数配列 arr と配列の長さ n です。 関数の内部では、最初にヘッダノード head と現在のノード curr を作成して NULL に初期化します。 次に、配列を反復処理して新しいノードを作成し、それらを連結リストに追加します。 最後に、ヘッダノード head を返します。

bannerAds