package main
import . "nc_tools"
/*
 * type TreeNode struct {
 *   Val int
 *   Left *TreeNode
 *   Right *TreeNode
 * }
 */

/**
 * 
 * @param t1 TreeNode类 
 * @param t2 TreeNode类 
 * @return TreeNode类
*/
func mergeTrees( t1 *TreeNode ,  t2 *TreeNode ) *TreeNode {
    root1, root2 := t1, t2
	var dfs func(root1, root2 *TreeNode) *TreeNode
	dfs = func(root1, root2 *TreeNode) *TreeNode {
		if root1 == nil {
			return root2
		}
		if root2 == nil {
			return root1
		}
		res := &TreeNode{Val: root1.Val + root2.Val}
		res.Left = dfs(root1.Left, root2.Left)
		res.Right = dfs(root1.Right, root2.Right)
		return res
	}
	return dfs(root1, root2)
}