系统显示结果错误,但是自己测试的例子得到的结果是正确的
2 5 4 1 是最后的结果
#include<iostream>
#include<stdlib.h>
using namespace std;
struct ListNode
{
int num;
ListNode *next;
};
extern void printLink(ListNode *head);
void buildLink(ListNode* head,int sum)
{
int value,position;
while(--sum)
{
cin>>value>>position;
//cout<<value<<position<<endl;
ListNode *p = head;
while(p!= NULL)
{
if(p->num == position)
{
//插入到p的后面
ListNode *temp = (ListNode*)malloc(sizeof(ListNode));
temp->num = value;
temp->next = p->next;
p->next = temp;
break;
}
else
p = p->next;
}
}
//printLink(head);
}
void deleteLink(ListNode* list,int devalue)
{
ListNode *p = list->next;
ListNode *q = list;
while(p!= NULL)
{
if(p->num == devalue)
{
q->next = p->next;
break;
}
else
{
q = p;
p = p->next;
}
}
printLink(list->next);
}
void printLink(ListNode* head)
{
ListNode *p = head;
while(p->next)
{
cout<<p->num<<" ";
p = p->next;
}
cout<<p->num<<endl;
}
int main()
{
ListNode *head = (ListNode*)malloc(sizeof(ListNode));
ListNode *list = (ListNode*)malloc(sizeof(ListNode));
head->next = NULL;
list->next = head;
int sum = 0;
cin>>sum;
//cout<<sum<<endl;
cin>>head->num;
//cout<<head->num;
buildLink(head,sum);
int devalue;
cin>>devalue;
deleteLink(list,devalue);
return 0;
}