【发布时间】:2015-10-14 13:44:26
【问题描述】:
bn_ptr drive_temp(bn_ptr head,bn_ptr temp,bn_ptr current)
{
while(temp->next!=current)
{
temp=temp->next;
current=temp;
}
temp=head;
return current;
}
我有链表和'head'指针保存第一个节点,'current'指针保存最后一个节点,我想将'current'一个一个带到head,所以我编写了这个函数,但是在我调试时它给出了分段错误程序
【问题讨论】:
-
while(temp->next!=current)应该是while(temp && temp->next!=current),否则您将取消引用 NULL 指针,这是未定义的行为。 -
没有一种非常方便的方法可以向后遍历单链表...您可以改用双链表,或者先反转列表,然后向前遍历反转的列表。
-
mch 我试过你的答案,但没有解决,我不想反转列表谢谢你的回答
-
将“temp”作为参数有什么意义?
-
我是新学的,温度不一定,谢谢@SelçukCihan
标签: c