克隆二叉树

    xiaoxiao2021-04-12  32

    1、问题描述

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

    2、实现思路

          类似于前序遍历,遍历原树的所有节点,将值赋值给新的树。

    3、代码

    /**  * 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 root;}         TreeNode *p= new TreeNode;         p->val=root->val;         p->left=cloneTree(root->left);         p->right=cloneTree(root->right);         return p;     } };

    4、感想

          类似于前序遍历,遍历原树的所有节点,将值赋值给新的树。每次递归都重新定义节点p,此位置不为空,将值赋给p,要每次返回p。

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

    最新回复(0)