leetcode[617]:マージツリーC言語解法

1234 ワード

2つのツリーを指定すると、そのうちの1つを別のツリーに上書きすると、2つのツリーのノードが重なることを想像します.
彼らを新しい二叉木に統合する必要があります.マージのルールは、2つのノードが重複している場合、その値をノードマージ後の新しい値として加算します.そうしないと、NULLでないノードは新しいツリーのノードとして直接使用されます.
例1:
  : 
	Tree 1                     Tree 2                  
          1                         2                             
         / \                       / \                            
        3   2                     1   3                        
       /                           \   \                      
      5                             4   7                  
  : 
     :
	     3
	    / \
	   4   5
	  / \   \ 
	 5   4   7

注:マージは、2つのツリーのルートノードから開始する必要があります.
 
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */

struct TreeNode* mergeTrees(struct TreeNode* t1, struct TreeNode* t2) 
{
    if(t1 == NULL)
    {
        return t2;
    }
    
    if(t2 == NULL)
    {
        return t1;
    }
    
    t1->val = t1->val + t2->val;
    t1->left = mergeTrees(t1->left, t2->left);
    t1->right = mergeTrees(t1->right, t2->right);
    return t1;
}