利用尾插法建立单链表,利用头插法完成单链表的逆置并输出逆置后的单链表用c语言实现
时间: 2023-08-29 15:04:40 浏览: 111
好的,下面是用 C 语言实现尾插法建立单链表,利用头插法完成单链表的逆置并输出逆置后的单链表的代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表结点
typedef struct ListNode {
int val;
struct ListNode* next;
} ListNode;
// 尾插法建立链表
ListNode* createList() {
ListNode* head = (ListNode*)malloc(sizeof(ListNode)); // 头结点不存储数据
head->next = NULL;
ListNode* tail = head;
int x;
while (scanf("%d", &x) != EOF) {
ListNode* p = (ListNode*)malloc(sizeof(ListNode));
p->val = x;
p->next = NULL;
tail->next = p;
tail = p;
}
return head->next;
}
// 头插法逆置链表
ListNode* reverseList(ListNode* head) {
ListNode* newHead = NULL;
while (head) {
ListNode* p = head;
head = head->next;
p->next = newHead;
newHead = p;
}
return newHead;
}
// 输出链表
void printList(ListNode* head) {
while (head) {
printf("%d ", head->val);
head = head->next;
}
printf("\n");
}
int main() {
ListNode* head = createList();
head = reverseList(head);
printList(head);
return 0;
}
```
希望这个 C 语言的实现对你有所帮助!
阅读全文