无法将 '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.
您可能会得到预期的输出。
#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.
您可能会得到预期的输出。