链表合并排序问题————为什么我写的程序运行后输出结果是乱码??

#include
using namespace std;
struct LinkList{
int iData;
LinkList *pPrev;
LinkList *pNext;
} ;
LinkList *create_A();
LinkList *create_B();
LinkList *merge(LinkList *Pa,LinkList *Pb);
int main(){
LinkList *Pa=create_A();
LinkList *Pb=create_B();
LinkList *pHead=merge(Pa,Pb);
LinkList *pTemp=pHead->pNext,*p_temp=NULL;
for(int i=0;i coutpNext->iData< Pa=Pa->pNext;
}
for(int i=0;i coutiData<<" ";
p_temp=pTemp->pNext;
delete pTemp;
pTemp=NULL;
pTemp=p_temp;
}
cout< return 0;
}
LinkList *create_A(){
int m;
LinkList *Pa=new LinkList,*pTemp=NULL,*pEnd=NULL;
Pa->pNext=Pa;
Pa->pPrev=Pa;
pEnd=Pa;
for(int i=0;i cout cin>>m;
pTemp=new LinkList;
pEnd->pNext=pTemp;
pTemp->pPrev=pEnd;
pTemp->pNext=Pa;
Pa->pPrev=pTemp;
pEnd=pTemp;
}
return Pa;
}
LinkList *create_B(){
int m;
LinkList *Pb=new LinkList,*pTemp=NULL,*pEnd=NULL;
Pb->pNext=Pb;
Pb->pPrev=Pb;
pEnd=Pb;
for(int i=0;i cout cin>>m;
pTemp=new LinkList;
pEnd->pNext=pTemp;
pTemp->pPrev=pEnd;
pTemp->pNext=Pb;
Pb->pPrev=pTemp;
pEnd=pTemp;
}
return Pb;
}
LinkList *merge(LinkList *Pa,LinkList *Pb){
LinkList *pHead=new LinkList,*pTemp=new LinkList,*p_temp=NULL,*temp_a=Pa->pPrev,*temp_b=Pb->pPrev;
pHead->pNext=pTemp;
while(temp_b!=Pb && temp_a!=Pa){
if(temp_a->iData >= temp_b->iData){
pTemp->iData=temp_a->iData;
temp_a=temp_a->pPrev;
}
else{
pTemp->iData=temp_b->iData;
temp_b=temp_b->pPrev;
}
pTemp->pNext=new LinkList;
p_temp=pTemp->pNext;
delete pTemp;
pTemp=NULL;
pTemp=p_temp;
}
while(temp_b!=Pb){
pTemp->iData=temp_b->iData;
pTemp->pNext=new LinkList;
p_temp=pTemp->pNext;
delete pTemp;
pTemp=NULL;
pTemp=p_temp;
temp_b=temp_b->pPrev;
}
while(temp_a!=Pa){
pTemp->iData=temp_a->iData;
pTemp->pNext=new LinkList;
p_temp=pTemp->pNext;
delete pTemp;
pTemp=NULL;
pTemp=p_temp;
temp_a=temp_a->pPrev;
}
pTemp=pHead;
return pHead;
}

http://www.cnblogs.com/heyonggang/archive/2013/11/03/3405179.html