zoukankan      html  css  js  c++  java
  • Lintcode---克隆二叉树

    深度复制一个二叉树。

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

    样例

    给定一个二叉树:

         1
       /  
      2    3
     / 
    4   5
    

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

         1
       /  
      2    3
     / 
    4   5


    思路:

    递归:用前序中序或者后序遍历,遍历每个节点,复制每个节点。
               
    题目很简单,但需要注意,当根节点左右孩子都为空时,也不能将根节点直接返回,必须是将其拷贝才可以!
    若直接返回根节点,则会提示,返回的是一个引用,而非拷贝!!!!!

    /**
     * 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;
            }
            
            
            TreeNode* pHead=new TreeNode(root->val);
            
            if(root->left!=NULL){
                pHead->left=cloneTree(root->left);
            }
            
            if(root->right!=NULL){
                pHead->right=cloneTree(root->right);
            }
            
            return pHead;
        }
    };
    
    
    
    


  • 相关阅读:
    ESRI系列产品报价表(ArcGIS 9.2系列)
    如何将区域插入到表中【转载】
    MapInfo注记的数据库存放解决方案
    最短路径问题的算法实现【转载】
    Web Services
    MapX从数据库读取数据形成新图层【转载】
    Hessian连接超时设置
    MINA学习
    Hessian解析及应用(整合Spring)
    Ant使用
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/7078934.html
Copyright © 2011-2022 走看看