leetcode[617]:マージツリーC言語解法
1234 ワード
2つのツリーを指定すると、そのうちの1つを別のツリーに上書きすると、2つのツリーのノードが重なることを想像します.
彼らを新しい二叉木に統合する必要があります.マージのルールは、2つのノードが重複している場合、その値をノードマージ後の新しい値として加算します.そうしないと、NULLでないノードは新しいツリーのノードとして直接使用されます.
例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;
}