画出一个存放了{1,2,3}3个元素的带头结点的单链表L2示意图,并给出带头结点的单链表L2的定义语句(注意包括结构体定义、创建L2并放入三个元素的完整过程语句)。
时间: 2023-05-30 18:06:16 浏览: 196
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
};
ListNode* L2 = new ListNode(0);
L2->next = new ListNode(1);
L2->next->next = new ListNode(2);
L2->next->next->next = new ListNode(3);
// L2的示意图如下:
// +---+ +---+ +---+ +----+
// | 0 | -> | 1 | -> | 2 | -> | 3 |
// +---+ +---+ +---+ +----+
相关问题
用c语言创建一个存放了{1,2,3}3个元素的带头结点的单链表L2
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct ListNode {
int val;
struct ListNode* next;
} ListNode;
void insert(ListNode* head, int val) {
ListNode* node = (ListNode*)malloc(sizeof(ListNode));
node->val = val;
node->next = head->next;
head->next = node;
}
void printList(ListNode* head) {
ListNode* p = head->next;
while(p != NULL) {
printf("%d ", p->val);
p = p->next;
}
printf("\n");
}
int main() {
ListNode* head = (ListNode*)malloc(sizeof(ListNode));
head->next = NULL;
insert(head, 3);
insert(head, 2);
insert(head, 1);
printList(head);
return 0;
}
```
创建带头结点的单链表L2表并放入三个元素{1,2,3}的完整过程语句
struct ListNode *head = (struct ListNode*)malloc(sizeof(struct ListNode)); // 创建头结点
head->next = NULL; // 初始化头结点的next指针为NULL
struct ListNode *p = head; // 创建一个指针p指向头结点
for(int i=1; i<=3; i++){
struct ListNode *temp = (struct ListNode*)malloc(sizeof(struct ListNode)); // 创建一个新节点
temp->val = i; // 赋值
temp->next = NULL; // 初始化节点的next指针为NULL
p->next = temp; // 将新节点插入到链表尾部
p = temp; // 移动指针p到新节点
}
// 链表L2的创建完成,头结点为head。