Почему я получаю 8s повторно, где я должен получать 827 в качестве вывода для следующего кода?
#include <iostream> #include <stdlib.h> #include <stdio.h> using namespace std; struct node{ int data; struct node* next; }; struct node* head; void insert(int data,int n) { node* temp1=new node(); temp1->data= data; temp1->next=NULL; if (n==1){ temp1->next=head; head=temp1; return; } node* temp2=head; for(int i=0;i<n-2;i++){ temp2=temp2->next; } temp1->next=temp2->next; temp2->next= temp1; }; void print(){ node* temp=head; while(temp!= NULL) cout<<temp->data<<"\n"; } int main() { head=NULL; insert(2,1); insert(7,2); insert(8,1); print(); }
Что я уже пробовал:
#include <iostream> #include <stdlib.h> #include <stdio.h> using namespace std; struct node{ int data; struct node* next; }; struct node* head; void insert(int data,int n) { node* temp1=new node(); temp1->data= data; temp1->next=NULL; if (n==1){ temp1->next=head; head=temp1; return; } node* temp2=head; for(int i=0;i<n-2;i++){ temp2=temp2->next; } temp1->next=temp2->next; temp2->next= temp1; }; void print(){ node* temp=head; while(temp!= NULL) cout<<temp->data<<"\n"; } int main() { head=NULL; insert(2,1); insert(7,2); insert(8,1); print(); }