为什么按照注释覅的那样写,输出的结果不对??

void Resolve(LinkList &LA,LinkList &LB,LinkList &LC){
struct LNode *pa,*pb,*pc;
pa=LA->next;
LB=new LNode;
LC=new LNode;//要生成两个新的头结点!!!
//LB=LC=LA;//不能这样写,这样写最后输出的LB和LChi一样的表,居然会一样??为什么??
pb=LB;
pc=LC;
struct LNode *p;
p=pa;
while(pa){
if(pa->data>0){
pb->next=pa;
pa=pa->next;
pb=pb->next;
pb->next=NULL;
}else if(pa->data pc->next=pa;
pa=pa->next;
pc=pc->next;
pc->next=NULL;
}
}
}