gpt4 book ai didi

复制链表

转载 作者:太空狗 更新时间:2023-10-29 16:34:08 26 4
gpt4 key购买 nike

typedef struct Node
{
int data;
Node *next;
Node *other;
};

Node *pHead;

pHead 是一个单链表。 next 字段指向列表中的下一个元素。 other 字段可以指向列表中的任何其他元素(可以是前面的节点之一或前面的节点之一)或 NULL

如何编写复制链表及其连通性的复制函数?新列表中的任何元素(nextother)都不应指向旧列表中的任何元素。

最佳答案

为旧列表中的每个节点创建一个新节点,复制相应的数据并使新列表中节点的next指针指向新列表中它们的后继者,忘记other暂时的指针。在创建新节点时,请记住节点地址的映射,例如:

Old_list   New_list
-------------------
0x123 0x345 [ addresses of the first node]
0xabc 0xdef [ addresses of the second node]
...

在第二遍中,新列表中的每个节点都考虑其other 指针,并从映射中找到新列表中其对应的节点并将其用作other 该节点的指针(新列表中的节点)。

关于复制链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2242553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com