首页 > 代码库 > 逆转单向链表
逆转单向链表
逆转单向链表
#include <stdio.h> #include <stdlib.h> struct Node { int data; struct Node *next; }; void list_reverse(struct Node **head) { struct Node *cur, *rev; struct Node *hold; cur = *head; rev = 0; while (cur) { hold = cur; cur = cur->next; hold->next = rev; rev = hold; } *head = rev; } void list_print(const struct Node *head) { while (head) { printf("%d ", head->data); head = head->next; } printf("\n"); } void list_push(struct Node **head, int data) { struct Node *node; node = (struct Node *)malloc(sizeof(struct Node)); if (!node) return; node->data = data; node->next = *head; *head = node; } void list_clear(struct Node **head) { struct Node *cur, *hold; cur = *head; while (cur) { hold = cur; cur = cur->next; free(hold); } *head = 0; } int main() { struct Node *list = 0; list_push(&list, 1); list_push(&list, 3); list_push(&list, 5); list_push(&list, 7); list_push(&list, 9); list_print(list); list_reverse(&list); list_print(list); list_clear(&list); return 0; }
本文出自 “chhquan” 博客,请务必保留此出处http://chhquan.blog.51cto.com/1346841/1567617
逆转单向链表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。