【算法设计与分析】LintCode375:复制二叉树

描述

深度复制一个二叉树。
给定一个二叉树,返回它的 深度拷贝

样例

样例 1:

输入:

{1,2,3,4,5}

输出:

{1,2,3,4,5}

解释:

样例中二叉树如下所示:

    1
   / \
  2   3
 / \
4   5

样例 2:

输入:

{1,2,3}

输出:

{1,2,3}

解释:

样例中二叉树如下所示:

  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 NULL;
        else{
            TreeNode * r1 = new TreeNode(root->val);
            r1->left = cloneTree(root->left);
            r1->right = cloneTree(root->right);
            return r1;
        }
    }
};
posted @ 2025-04-27 23:49  Albiehao  阅读(33)  评论(0)    收藏  举报