簡體   English   中英

如何將鏈表復制到另一個列表?

[英]How do you copy a linked list into another list?

我正在研究數據結構和鏈表,但我沒有得到如何制作鏈表副本的概念。 有人可以解釋一下,可能使用偽代碼或C代碼嗎?

復制鏈表的邏輯是遞歸的,並基於以下觀察:

  1. 空列表的克隆是空列表。
  2. 具有第一節點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;
}

您是否了解如何將新節點添加到現有列表? 您是否了解如何遍歷(即迭代)列表? 復制列表只是同時執行這兩個操作(遍歷ListA;對於每個元素,復制元素並將其作為新節點添加到ListB)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM