克隆二叉树

    xiaoxiao2021-04-13  24

    问题描述:

    深度复制一个二叉树。

    给定一个二叉树,返回一个他的 克隆品 。

    样例

    给定一个二叉树:

    1 / \ 2 3 / \ 4 5

    返回其相同结构相同数值的克隆二叉树:

    1 / \ 2 3 / \ 4 5

    解题思路:

    当二叉树为空时,返回空。当二叉树不为空时,定义一个新的二叉树节点clone_root,使clone_root赋值为root->val。用递归完成左子树和右子树的克隆。

    代码实现:

    /**  * Definition of TreeNode:  * class TreeNode {  * public:  *     int val;  *     TreeNode *left, *right;  *     TreeNode(int val) {  *         this->val = val;  *         this->left = this->right = NULL;  *     }  * }  */ class Solution { public:     /**      * @param root: The root of binary tree      * @return root of new tree      */     TreeNode* cloneTree(TreeNode *root) {         // Write your code here         if(root==NULL) return NULL;         else{             TreeNode *clone_root= new TreeNode(root->val);             clone_root->left=cloneTree(root->left);             clone_root->right=cloneTree(root->right);             return clone_root;         }     } };

    解题感悟:

    clone_root的定义容易出现语法错误,要注意。

    转载请注明原文地址: https://ju.6miu.com/read-668631.html

    最新回复(0)