华为oj 从单向链表中删除指定值的节点

来源:互联网 发布:hadoop 数据抓取 编辑:程序博客网 时间:2024/05/24 05:39
系统显示结果错误,但是自己测试的例子得到的结果是正确的
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;} 

0 0
原创粉丝点击