单向链表翻转
程序员文章站
2022-06-03 18:17:10
...
临时笔记,创建一个链表
单向链表翻转
#include <stdlib.h> #include <stdio.h> typedef struct node* link; struct node {int item;link next;}; int main(int argc,char * argv[]){ int i,N=atoi(argv[1]); link t =malloc(sizeof *t),x=t; t->item=1;t->next=t; for(i=2;i<=N;i++){ x=(x->next=malloc(sizeof *x)); x->item=i;x->next=t; } x=t; // for(i=1;i<=N;i++){ while(x->next!=t){ printf("%d\n",x->item); x=x->next; } } ~
单向链表翻转
#include <stdlib.h> #include <stdio.h> typedef struct node* link; struct node {int item;link next;}; int main(int argc,char * argv[]){ int i,N=atoi(argv[1]); struct node *t ,*x; t=malloc(sizeof *t),x=t; t->item=1;t->next=t; for(i=2;i<=N;i++){ x=(x->next=malloc(sizeof *x)); x->item=i;x->next=t; } x=t; for(i=1;i<=N;i++){ printf("%d\n",x->item); x=x->next; } //---------翻转开始--主要是temp节点存住了要变化的节点 struct node *s,*temp; s=t; for(i=1;i<=N;i++){ temp=s; s=s->next; temp->next=t; t=temp; } //---------翻转结束 x=t; for(i=1;i<=N;i++){ printf("%d\n",x->item); x=x->next; } }
下一篇: 深入理解计算机系统第三章笔记 gcc