There is my simple recursive solution with O(n) time complexity.

```
public class Solution {
public TreeNode MergeTrees(TreeNode t1, TreeNode t2) {
if (t1 == null) { return t2; }
if (t2 == null) { return t1; }
var root = t1.val + t2.val;
var result = new TreeNode(root);
result.left = MergeTrees(t1.left, t2.left);
result.right = MergeTrees(t1.right, t2.right);
return result;
}
}
```