CodePudding user response:
You of the main function of the code is posted, see how the head when you delete functions have parameters initializationSecond, delete function phead and p pointer without new time, it is good to use the head assignment directly, namely DPigNode * phead=head; DPigNode * p=head; Otherwise you new without don't delete, causing a memory leak
CodePudding user response:
The head has come in, pHead=p=head;Two new
there is no need for operation
D Node * pHead, * p, * temp);
PHead=p=head;
While (p!=NULL) {
If (p - & gt; Weight!=weight) p=p - & gt; PNext .//not to delete node
Temp=p;//p is to delete the node
If (NULL==p - & gt; PPre ) {//p is head node will not lead node
PHead=p - & gt; PNext .
PHead - & gt; PPre =NULL;
delete p;
Return pHead;
}
If (NULL==p - & gt; PNext ) {//p is tail node
P - & gt; PPre - & gt; PNext =NULL;
delete p;
Return pHead;
}
//p not head, nor
tailP - & gt; PPre - & gt; PNext =p - & gt; PNext .
P - & gt; PNext - & gt; PPre =p - & gt; PPre .
delete p;
Return pHead;
}
Return pHead;//in the end also didn't find want to delete the weight will be executed this statement
CodePudding user response:
The head has come in, pHead=p=head;
Two new
there is no need for operation
D Node * pHead, * p, * temp;
PHead=p=head;
While (p!=NULL) {
If (p - & gt; Weight!=weight) p=p - & gt; PNext .//not to delete node
Temp=p;//p is to delete the node
If (NULL==p - & gt; PPre ) {//p is head node will not lead node
PHead=p - & gt; PNext .
if (pHead)//queue only nodes inside, likely pHead will be NULL
pHead - & gt; PPre =NULL;
delete p;
Return pHead;
}
If (NULL==p - & gt; PNext ) {//p is tail node
//here don't have to test p - & gt; PPre , program here has guaranteed the p not head node, front nodes will exist
P - & gt; PPre - & gt; PNext =NULL;
delete p;
Return pHead;
}
//p not head, nor
tailP - & gt; PPre - & gt; PNext =p - & gt; PNext .
P - & gt; PNext - & gt; PPre =p - & gt; PPre .
delete p;
Return pHead;
}
Return pHead;//in the end also didn't find want to delete the weight will be executed this statement