编写单链表插入、打印、就地逆置、和销毁函数; 利用这些函数实现本题要求。
时间: 2023-06-07 22:09:29 浏览: 102
单链表的插入、删除、逆转等实现
好的,这个问题属于计算机科学技术,我可以回答。下面是单链表插入、打印、就地逆置和销毁函数的实现:
```c
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode* insert(struct ListNode* head, int val) {
struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
newNode->val = val;
newNode->next = head;
head = newNode;
return head;
}
void printList(struct ListNode* head) {
while (head) {
printf("%d ", head->val);
head = head->next;
}
}
struct ListNode* reverseList(struct ListNode* head) {
if (!head || !head->next) return head;
struct ListNode* prev = NULL;
struct ListNode* cur = head;
while (cur) {
struct ListNode* next = cur->next;
cur->next = prev;
prev = cur;
cur = next;
}
return prev;
}
void destroyList(struct ListNode* head) {
while (head) {
struct ListNode* node = head;
head = head->next;
free(node);
}
}
```
这里我们可以用单链表存储一些数字,并且可以利用上述函数实现对单链表的插入、打印、就地逆置、和销毁操作。你可以根据具体要求进行函数的调用。
阅读全文