1025 反转链表 (25 分)测试点6

这道题是真的让我迷了好久
这里主要是先把顺序拍出来放到daatasort的数组里,然后用reverse函数按照顺序给他倒过来
这里的怎么倒过来就是精髓所在
这里

    for(int i=0;i

这里就是关键中的关键所在
测试点6呢就是,有的节点并不是有效节点,所以你要用total统计真正有效的节点

 

#include 
#include
#include
#include
#include
using namespace std;
struct node
{
    int first;
    int data;
    int last;
};
vectordatasort;
node pre[101001]={-1};
int main()
{
    std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    int head,n,k,total=0;
    cin>>head>>n>>k;
    for(int i=0;i>first>>data>>last;
        node Positive,Opposite;
        Positive.first=first;
        Positive.last=last;
        Positive.data=data;
        pre[first]=Positive;
    }
    int beginnum=head;
    datasort.push_back(beginnum);
    while(pre[beginnum].last!=-1){
        beginnum=pre[beginnum].last;
        datasort.push_back(beginnum);
        total++;
    }
    total++;
    for(int i=0;i

 

你可能感兴趣的:(1025 反转链表 (25 分)测试点6)