使用反向迭代方法时不会打印反向链接列表

时间:2016-08-24 04:08:33

标签: c data-structures linked-list

我正在尝试以相反的顺序打印链接列表,但是当我运行它时,它不打印出来。它只是在打印正确的订单后停止,输出屏幕在此之后挂起。这是我的代码:

-1 -1 -1 
-1  9 -1 
-1 -1 -1

谢谢!

1 个答案:

答案 0 :(得分:4)

代码有两个问题。

1)next=current;应该是next=current->next;,正如@BLUEPIXY在评论中指出的那样

2)在致电reverse后,您丢失了列表,即main中的head不再指向列表的头部。要解决这个问题,你可以这样做:

struct node* reverse(struct node *head)
{
    ....
    return head;
}

并在main

head = reverse(head);

另一种解决方案是:

void reverse(struct node **head) { ... }
                          ^
                          notice

// Called from main as: reverse(&head);

然后在函数中使用之前取消引用head。这将对*head中的head进行更改以更改main中的malloc

BTW:不要转换./spark-ec2 --key-pair=spark-cluster --identity-file=/Users/abc/spark-cluster.pem --slaves=3 --region=us-west-1 --zone=us-west-1c --vpc-id=vpc-2e44594 --subnet-id=subnet-18447841 --spark-version=1.6.1 launch spark-cluster

返回的值