struct student *merge(struct student *head, struct student *head2){ struct student *P; P=head->next; while(P!=NULL) { P=P->next; } P=head2; return head;}这个是我的链表合并函数。struct student *merge(struct student *head, struct student *head2){ struct student *p; p=head; while(p->next!=NULL) { p=p->next; } p->next=head2; return head;}这是答案。我的没有合并成功,但是我的P也指向了那个空的位置啊。为什么我的用P不可以? 而答案用P->next 却可以。
1 回答

灼眼de菠萝包
TA贡献3条经验 获得超0个赞
你没有明白指针的实质。在你的算法里,p指向的是空位置,也就是说没有指向任何内存单元,当你执行了p=head2时,p就指向了head2头结点。但是,在链表1的尾节点中并没有存head2头结点的地址。实际上还是两条断开的链表。 建议你先搞明白指针到底是什么~
- 1 回答
- 1 关注
- 1283 浏览
添加回答
举报
0/150
提交
取消