欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

单向链表翻转

程序员文章站 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;
    }
} 
相关标签: c test