vector转化链表
时间: 2024-02-21 12:55:44 浏览: 25
将vector转化为链表可以通过遍历vector的元素,逐个创建链表节点,并将节点连接起来的方式实现。下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
};
ListNode* vectorToList(const std::vector<int>& vec) {
ListNode* dummy = new ListNode(0); // 创建一个虚拟头节点
ListNode* curr = dummy;
for (int num : vec) {
curr->next = new ListNode(num);
curr = curr->next;
}
ListNode* head = dummy->next;
delete dummy; // 删除虚拟头节点
return head;
}
void printList(ListNode* head) {
while (head != nullptr) {
std::cout << head->val << " ";
head = head->next;
}
std::cout << std::endl;
}
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
ListNode* head = vectorToList(vec);
printList(head);
return 0;
}
```
上述代码中,`vectorToList`函数接受一个整数类型的vector作为参数,创建一个虚拟头节点dummy,并使用curr指针遍历vector的元素。在每次循环中,创建一个新的链表节点,并将curr指针指向该节点。最后返回虚拟头节点的下一个节点作为链表的头节点。
运行上述代码,输出结果为:
```
1 2 3 4 5
```
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)