自己在VS裏寫了完整代碼!! 才知道自己犯的下面第一個錯!!
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
*/
class Solution {
public:
ListNode* deleteDuplication(ListNode* pHead)
{
if(pHead==NULL)return NULL;
ListNode* p2=pHead;
ListNode* p3=NULL;
ListNode *newHead=new ListNode(0),*newp=newHead;
//newHead->val=0;
// newHead->next=NULL;
while(p2!=NULL)
{
p3=p2->next;
if(p3==NULL)//最後一個結點,就不能像32行 可以進行對比
{//鏈接到新表中
newp->next=p2;
newp=newp->next;
newp->next=NULL;
p2=p2->next;
}
else
{
if(p2->val==p3->val)
{
/*while(p2->val==p3->val&&p3!=NULL)
p3=p3->next;
if(p3==NULL)p2=NULL;
if(p2->val!=p3->val) p2=p3; */
while(p3!=NULL)
{
if(p2->val==p3->val){p3=p3->next;}
else break;
}
if(p3==NULL)p2=NULL;
else { if(p2->val!=p3->val) p2=p3; }
}
else
{//鏈接到新表中
newp->next=p2;
newp=newp->next;
newp->next=NULL;
//p2=p2->next;
p2=p3;
}
}
}
return newHead->next;
}
};
-----------------------VS 軟件上調試 Code--------------------------------
#include<iostream>
using namespace std;
struct ListNode {
int val;
struct ListNode *next;
}*pHead;
void creat(ListNode * &pHead)
{
int a[8]={1,3,3,3,3,5,5,5};
int n=8;
//int a[1]={2};
//int n=1;
pHead= new ListNode;
pHead->val=a[0];
pHead->next=NULL;
ListNode *p=pHead;
for(int i=1;i<n;i++)
{
ListNode *t=new ListNode;
t->val=a[i];
t->next=NULL;
p->next=t;
p=p->next;
}
}
void output(ListNode * &pHead)
{
ListNode *p=pHead;
while(p!=NULL)
{
cout<<p->val;
p=p->next;
}
cout<<endl;
}
ListNode* deleteDuplication(ListNode* pHead)
{
if(pHead==NULL)return NULL;
ListNode* p2=pHead;
ListNode* p3=NULL;
ListNode *newHead=new ListNode,*newp=newHead;
newHead->val=-1;
newHead->next=NULL;
while(p2!=NULL)
{
p3=p2->next;
if(p3==NULL)//最後一個結點,就不能像32行 可以進行對比
{//鏈接到新表中
newp->next=p2;
newp=newp->next;
newp->next=NULL;
p2=p2->next;
}
else
{
if(p2->val==p3->val)
{
//while(p2->val==p3->val&&p3!=NULL)
int k=0;
while(p3!=NULL)
{
if(p2->val==p3->val){p3=p3->next;}
else break;
}
if(p3==NULL)p2=NULL;
else { if(p2->val!=p3->val) p2=p3; }
}
else
{//鏈接到新表中
newp->next=p2;
newp=newp->next;
newp->next=NULL;
// p2=p2->next;
p2=p3;
}
}
}
return newHead->next;
}
void main()
{
ListNode * pHead=NULL;
creat(pHead);
ListNode * pH=NULL;
pH=deleteDuplication(pHead);
output(pH);
system("pause");
}
好愛奈何
我coding 的動力