我正在尝试合并两个已排序的链接列表,但没有获得所需的O / P.我认为地址分配存在一些问题,但我不确定。任何人都能说明为什么我没有得到任何o / p?
struct Node* SortedMerge(struct Node* a, struct Node* b)
{
struct Node *head;
struct Node **tail=&head;
while(1)
{
if(a==NULL)
{
*tail=b;
break;
}
if(b==NULL)
{
*tail=a;
break;
}
if(a->data<=b->data)
{
*tail=a;
a=a->next;
(*tail)->next=NULL;
}
else
{
*tail=b;
b=b->next;
(*tail)->next=NULL;
}
(*tail)=(*tail)->next;
}
return head;
}
答案 0 :(得分:0)
(*tail)=(*tail)->next;
将其替换为: -
tail = &( (*tail)->next );
我希望它能奏效。
答案 1 :(得分:0)
您应该考虑使用append函数来简化代码。这是一个例子:
if __name__ == '__main__':
import sys
error()
sys.exit(1)