[Error] no matching function for call to 'ListNode::ListNode(const std::vector&)'
以下代码的报错
#include <iostream>
#include <vector>
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
};
ListNode* createList(const std::vector<int>& nums) {
if (nums.empty()) return nullptr;
ListNode* head = new ListNode(nums);
ListNode* current = head;
for (size_t i = 1; i < nums.size(); ++i) {
current->next = new ListNode(nums[i]);
current = current->next;
}
return head;
}
ListNode* reverseList(ListNode* pHead) {
ListNode* prev = nullptr;
ListNode* curr = pHead;
while (curr != nullptr) {
ListNode* nextTemp = curr->next;
curr->next = prev;
prev = curr;
curr = nextTemp;
}
return prev;
}
void printList(ListNode* head) {
while (head != nullptr) {
std::cout << head->val;
if (head->next != nullptr) std::cout << " ";
head = head->next;
}
std::cout << std::endl;
}
void deleteList(ListNode* head) {
while (head != nullptr) {
ListNode* temp = head;
head = head->next;
delete temp;
}
}
int main() {
std::vector<int> nums = {3, 7, 2, 5, 1, 4, 8, 9, 2};
ListNode* head = createList(nums);
std::cout << "Original List: ";
printList(head);
ListNode* reversedHead = reverseList(head);
std::cout << "Reversed List: ";
printList(reversedHead);
deleteList(reversedHead);
return 0;
}