zoukankan      html  css  js  c++  java
  • 617. 合并二叉树

    给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。

    你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。

    示例 1:

    输入: 
    	Tree 1                     Tree 2                  
              1                         2                             
             /                        /                             
            3   2                     1   3                        
           /                                                    
          5                             4   7                  
    输出: 
    合并后的树:
    	     3
    	    / 
    	   4   5
    	  /     
    	 5   4   7
    

    注意: 合并必须从两个树的根节点开始。

     1 /**
     2  * Definition for a binary tree node.
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
    13         if(t1 == NULL && t2 == NULL)return NULL;
    14         else if(t1 == NULL) return t2;
    15         else if(t2 == NULL) return t1;
    16         else {
    17             t1->val += t2->val;
    18             t1->left = mergeTrees(t1->left,t2->left);
    19             t1->right = mergeTrees(t1->right,t2->right);
    20             return t1;
    21         }
    22     }
    23 };
  • 相关阅读:
    史上最刁钻的十道英语面试题
    99%的人连Where are you from都不会回答?
    库存管理与订单的控制
    订单处理逻辑
    配送规划
    多商家电子商务解决方案
    电商库存规划
    库存管理从入门到精通
    商家报名系统
    经销商管理
  • 原文地址:https://www.cnblogs.com/jj81/p/9033450.html
Copyright © 2011-2022 走看看