复制链表的逻辑是递归的,并且基于以下观察结果:
- 空列表的克隆是空列表。
- 具有第一个节点x和其余节点xs的列表的克隆是x的副本,该副本位于xs的克隆之前。
如果您使用C ++对链表进行编码,则可以很干净:
struct Node { int value; Node* next;};Node* Clone(Node* list) { if (list == NULL) return NULL; Node* result = new Node; result->value = list->value; result->next = Clone(list->next); return result;}


