单向链表翻转
临时笔记,创建一个链表#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); 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); 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; }}
页:
[1]