【发布时间】:2021-08-29 15:43:45
【问题描述】:
我正在尝试反转偶数的子列表。代码中似乎存在逻辑错误,但我找不到。
node *sublist_reverse(node *head)
{
node *temp=head,*wrking,*wrking_bfr,*node_tobe_ext;
while(temp!=NULL)
{
if(temp->link->data%2==0)
{
while(temp->link->data%2==0)
{
if(temp->data%2!=0)
{
wrking_bfr=temp;
wrking=wrking_bfr->link;
}
node_tobe_ext=wrking->link;
wrking->link=node_tobe_ext->link;
node_tobe_ext->link=wrking_bfr->link;
wrking_bfr->link=node_tobe_ext;
temp=wrking->link;
}
}
else
{
temp=temp->link;
}
}
return head;
}
【问题讨论】:
-
我不确定你真正想要实现什么,也许你想提供一个例子。然而,有一件事:
if(temp->data%2!=0)永远不会在你检查正好相反的循环中为真 (while(temp->link->data%2==0))。 -
首先,决定一种语言,而不是两种。然后,阅读How to Ask,因为你说有问题,但没有描述那个失败!此外,还要从您的代码中提取minimal reproducible example。作为这里的新用户,也请带上tour并阅读How to Ask。
标签: c algorithm linked-list reverse singly-linked-list