cpp能否将一个数组[1,1,2,3,3]转换成ListNode*类型链表?
时间: 2024-02-06 12:11:52 浏览: 64
可以将一个数组转换成 `ListNode*` 类型的链表。可以通过以下代码来实现:
```cpp
ListNode* createLinkedList(vector<int>& nums) {
if (nums.empty()) {
return NULL;
}
ListNode* dummyHead = new ListNode(0);
ListNode* cur = dummyHead;
for (int i = 0; i < nums.size(); i++) {
cur->next = new ListNode(nums[i]);
cur = cur->next;
}
return dummyHead->next;
}
```
这个方法中,我们通过一个 `vector` 来存储链表中的值,然后通过循环将值一个一个地插入到链表中。最后返回链表的头结点即可。
例如,对于数组 `[1,1,2,3,3]`,可以使用以下代码来将其转换成 `ListNode*` 类型的链表:
```cpp
vector<int> nums{1, 1, 2, 3, 3};
ListNode* head = createLinkedList(nums);
```
这样就可以得到一个链表,其头结点为 `1->1->2->3->3->NULL`。注意,这里需要先定义一个 `ListNode` 结构体,代码如下:
```cpp
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
```
阅读全文