m0_71257151 2023-09-23 20:04 采纳率: 66.7%
浏览 12
已结题

帮我写一个关于单链表逆置的程序

输入格式:第一行,输入n的值表示单链表的元素个数,第二行输入n个整数值作为单链表的各元素值
输出格式:输出倒置后的单链表的各元素值各元素值之间用空格分隔

  • 写回答

5条回答 默认 最新

  • Programming_Konjac 2023-09-23 20:18
    关注
    
    #include<bits/stdc++.h>
    using namespace std;
    struct node{
        int data,next;
    }a[100005],b[100005];
    int cnt=0,cnt2=0,head[100005],head2[100005];
    void add(int x,int y){//头插 
        a[++cnt].data=y;
        a[cnt].next=head[x];
        head[x]=cnt;
    }
    void aadd(int x,int y){//头插 
        b[++cnt2].data=y;
        b[cnt2].next=head2[x];
        head2[x]=cnt2;
    }
    int main(){
        memset(head,-1,sizeof head);
        memset(head2,-1,sizeof head2);
        int n;
        cin>>n;
        int aa[n+5];
        for(int i=1; i<=n; i++){
            cin>>aa[i];
        }
        for(int i=n; i>=1; i--){//头插 
            add(1,aa[i]);
        }
        for(int j=head[1];j!=-1;j=a[j].next){//遍历链表 
            aadd(1,a[j].data);
        }
        for(int j=head2[1];j!=-1;j=b[j].next){//输出链表 
            cout<<b[j].data<<" ";
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 10月1日
  • 已采纳回答 9月23日
  • 创建了问题 9月23日