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

溫馨提示×

C++中如何實現樹節點的復制與刪除

c++
小樊
89
2024-08-24 03:29:33
欄目: 編程語言

在C++中,我們可以通過遞歸的方式實現樹的節點的復制和刪除操作。以下是實現樹節點復制和刪除的示例代碼:

#include <iostream>

struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;

    TreeNode(int value) : val(value), left(nullptr), right(nullptr) {}
};

// 復制樹節點
TreeNode* copyTree(TreeNode* root) {
    if (root == nullptr) {
        return nullptr;
    }

    TreeNode* newNode = new TreeNode(root->val);
    newNode->left = copyTree(root->left);
    newNode->right = copyTree(root->right);

    return newNode;
}

// 刪除樹節點
void deleteTree(TreeNode* root) {
    if (root == nullptr) {
        return;
    }

    deleteTree(root->left);
    deleteTree(root->right);

    delete root;
}

int main() {
    TreeNode* root = new TreeNode(1);
    root->left = new TreeNode(2);
    root->right = new TreeNode(3);
    root->left->left = new TreeNode(4);
    root->left->right = new TreeNode(5);

    // 復制樹節點
    TreeNode* copiedRoot = copyTree(root);

    // 刪除原始樹節點
    deleteTree(root);

    // 刪除復制的樹節點
    deleteTree(copiedRoot);

    return 0;
}

在上面的示例代碼中,我們定義了一個簡單的樹節點結構TreeNode,并實現了復制樹節點的copyTree函數和刪除樹節點的deleteTree函數。在main函數中,我們創建了一個樹,并分別復制和刪除了樹節點,以演示復制和刪除樹節點的操作。

0
辛集市| 五大连池市| 金秀| 洛阳市| 永登县| 麦盖提县| 潞城市| 和政县| 庄浪县| 钦州市| 绩溪县| 北川| 兴业县| 南皮县| 体育| 上虞市| 汕头市| 余姚市| 澄江县| 曲沃县| 凤台县| 荆门市| 腾冲县| 手机| 宁晋县| 宁安市| 临邑县| 蒙自县| 阳朔县| 新泰市| 济阳县| 宁波市| 阿鲁科尔沁旗| 普定县| 彭山县| 鄄城县| 永丰县| 陆川县| 周宁县| 枣强县| 越西县|