91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C++單鏈表的合并操作如何實施

c++
小樊
83
2024-07-16 20:25:47
欄目: 編程語言

在C++中,可以通過創建一個新的鏈表來合并兩個已有的單鏈表。具體步驟如下:

  1. 創建一個新的鏈表用于存儲合并后的結果。
  2. 遍歷第一個鏈表,依次將節點復制到新鏈表中。
  3. 再遍歷第二個鏈表,將節點依次復制到新鏈表的末尾。
  4. 最終返回新鏈表即為兩個單鏈表合并后的結果。

下面是一個示例代碼:

#include <iostream>

struct Node {
    int data;
    Node* next;
    Node(int val) : data(val), next(nullptr) {}
};

Node* mergeLists(Node* l1, Node* l2) {
    Node* dummy = new Node(0);
    Node* cur = dummy;

    while (l1 && l2) {
        if (l1->data < l2->data) {
            cur->next = l1;
            l1 = l1->next;
        } else {
            cur->next = l2;
            l2 = l2->next;
        }
        cur = cur->next;
    }

    cur->next = l1 ? l1 : l2;

    Node* mergedList = dummy->next;
    delete dummy;
    return mergedList;
}

void printList(Node* head) {
    Node* cur = head;
    while (cur) {
        std::cout << cur->data << " ";
        cur = cur->next;
    }
    std::cout << std::endl;
}

int main() {
    Node* l1 = new Node(1);
    l1->next = new Node(3);
    l1->next->next = new Node(5);

    Node* l2 = new Node(2);
    l2->next = new Node(4);
    l2->next->next = new Node(6);

    Node* mergedList = mergeLists(l1, l2);
    printList(mergedList);

    return 0;
}

在上面的示例代碼中,我們首先定義了一個Node結構體表示鏈表節點,然后實現了mergeLists函數來合并兩個有序單鏈表。最后在main函數中創建兩個有序單鏈表,并調用mergeLists函數進行合并,然后輸出合并后的鏈表。

0
大厂| 贵港市| 磐石市| 清远市| 安阳市| 东兰县| 来安县| 屏东市| 阳山县| 淳化县| 林州市| 长寿区| 苗栗市| 大港区| 沭阳县| 浠水县| 湖北省| 加查县| 怀柔区| 巴楚县| 新和县| 周至县| 金堂县| 兴宁市| 永安市| 乡宁县| 扶风县| 乐昌市| 清流县| 嘉义市| 雷州市| 延庆县| 祁东县| 孙吴县| 屯门区| 福建省| 镇康县| 济阳县| 克拉玛依市| 平乐县| 高密市|