克隆二叉树

来源:互联网 发布:mac如何安装搜狗输入法 编辑:程序博客网 时间:2024/06/09 20:03

深度复制一个二叉树。

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

样例

给定一个二叉树:

     1   /  \  2    3 / \4   5

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

     1   /  \  2    3 / \4   5
解题思路:先建立一个新的二叉树定点,然后dfs旧的二叉树并同时每步节点不为空则建立新树,最后bfs完成后就建立了一棵二叉树返回即可
class Solution {public:    /**     * @param root: The root of binary tree     * @return root of new tree     */    TreeNode *Ans=new TreeNode(0);      void copy(TreeNode *root,TreeNode *ans){       ans->val=root->val;       if(root->left!=NULL){            ans->left=new TreeNode(0);            copy(root->left,ans->left);       }       if(root->right!=NULL){            ans->right=new TreeNode(0);            copy(root->right,ans->right);       }   }    TreeNode* cloneTree(TreeNode *root) {        // Write your code here        if(root==NULL)return NULL;        copy(root,Ans);        return Ans;    }};

0 0
原创粉丝点击