云服务器免费试用

C++中如何实现树节点的复制与删除

服务器知识 0 948

在C++中,我们可以通过递归的方式实现树的节点的复制和删除操作。以下是实现树节点复制和删除的示例代码:

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函数中,我们创建了一个树,并分别复制和删除了树节点,以演示复制和删除树节点的操作。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942@qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: C++中如何实现树节点的复制与删除
本文地址: https://solustack.com/170574.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。