我正在尝试反向链接列表,但是我不想更改通过引用传递的原始链接列表,我该如何解决?
typedef Node * ListType
ListType reverse(ListType list) {
if (list == NULL) {
return list;
}
ListType curr = list;
//printList(list); //list unchanged
ListType prev=NULL, next=NULL;
while (curr != NULL) {
next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
//printList(list); //list changed(I dont't want it changed)
return prev;
}
答案 0 :(得分:0)
由于您不想更改原始列表,因此必须对其进行复制。遍历原始列表,将新节点放在反向列表之前,然后返回。
例如:
UIActivity.ActivityType
只需确保调用者在使用后释放返回的列表即可。