我试图测试一个链表是否是回文。为此,我只是要反转链表,然后在循环中逐个检查每个节点。但是,我不知道如何按值传递原始链表。我想现在我通过它的引用传递链表,在我反转之后修改了原始结构。
ssh
答案 0 :(得分:1)
执行此操作时:
ListNode* original = head;
你只是复制指针,这意味着你有两个指针变量指向同一个内存区域,所以改变一个将改变另一个。你能不能只是取消引用指针并复制它。然后,如果需要,您可以获得指向该新变量的指针。
ListNode original = *head;
ListNode* original2 = &original;
然后您可以在不更改头部的情况下修改original2。