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

avatar
作者
猴君
阅读量:0

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!