无法将 'ListNode*' 转换为 'ListNode**' C++

cannot convert 'ListNode*' to 'ListNode**' C++

#include <bits/stdc++.h>

using namespace std;

struct ListNode {
    int val;
    ListNode *next;
    ListNode() : val(0), next(nullptr) {}
    ListNode(int x) : val(x), next(nullptr) {}
    ListNode(int x, ListNode *next) : val(x), next(next) {}
};

void printList(ListNode *head) {
    ListNode *curr = head;
    while (curr != NULL) {
        cout << curr->val;
        curr = curr->next;
    }
}

int main() {
    ListNode *head[5];
    ListNode *node;
    head[0] = new ListNode(1,NULL);
    for (int  i = 1; i < 5; i++) {
        head[i] = new ListNode(i + 1, head[i - 1]);
    }

    node = head[5]; //cannot convert 'ListNode*' to 'ListNode**'
    printList(node);

    return 0;
}

我应该如何将最后一个节点作为单个指针传递给函数? 我无法将双指针中的节点转换为单指针变量。

正如 Armin 在评论中指出的那样,您引用的数组超出了范围。

如果你更换

node = head[5];

node = head[4];  //this is the 5th element of the array.

您可能会得到预期的输出。