如何解决我一直在尝试使用 C++ 合并 2 个排序的链表,但我的输出什么也没显示,只是空白?
我一直在尝试使用 C++ 合并 2 个排序的链表,但我的输出什么也没显示,只是空白。
在 main 函数中,我创建了 2 个排序的链表,在 mergeem
函数中,我通过制作 h
(头)指针和 t
(尾)指针并递增 { {1}} 指针,在决定新加入的链表中的下一个值之后。 t
返回 mergeem
,我以 h
为头打印链接列表。
h
解决方法
假设h1
的主循环之后mergeem
不为空。
然后循环
while(h1!=NULL)
{
t->next=h1;
}
永远不会终止,因为 h1
的值不会改变;您只是一遍又一遍地为 t->next
分配相同的值。
相同的推理适用于带有 h2
的循环。
由于您只是想“接管”剩余列表的尾部,因此在两种情况下都应该使用 if
而不是 while
。
if (h1 != NULL)
{
t->next = h1;
}
你也可以将尾部窃取浓缩为
t->next = h1 != NULL ? h1 : h2;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。