如何在不改变C ++原始链表的情况下反转链表

时间:2018-01-14 04:32:34

标签: c++

我试图测试一个链表是否是回文。为此,我只是要反转链表,然后在循环中逐个检查每个节点。但是,我不知道如何按值传递原始链表。我想现在我通过它的引用传递链表,在我反转之后​​修改了原始结构。

ssh

1 个答案:

答案 0 :(得分:1)

执行此操作时:

ListNode* original = head;

你只是复制指针,这意味着你有两个指针变量指向同一个内存区域,所以改变一个将改变另一个。你能不能只是取消引用指针并复制它。然后,如果需要,您可以获得指向该新变量的指针。

ListNode original = *head;
ListNode* original2 = &original;

然后您可以在不更改头部的情况下修改original2。