首页主机资讯C++中如何实现树节点的复制与删除

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

时间2024-08-26 16:10:03发布访客分类主机资讯浏览1102
导读:在C++中,我们可以通过递归的方式实现树的节点的复制和删除操作。以下是实现树节点复制和删除的示例代码: #include <iostream> struct TreeNode { int val; TreeNo...

在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://pptw.com/jishu/695732.html
C++中树节点的值传递与引用传递 C++树节点的父指针与孩子指针如何使用

游客 回复需填写必要信息