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 {
// write code here
return preTravel(t1, t2)
}
func preTravel(t1 *TreeNode, t2 *TreeNode) *TreeNode {
if t1 == nil && t2 == nil {
return nil
}
node := &TreeNode{}
if t1 != nil && t2 != nil {
node.Val = t1.Val + t2.Val
node.Left = preTravel(t1.Left, t2.Left)
node.Right = preTravel(t1.Right, t2.Right)
} else if t1!= nil {
node.Val = t1.Val
node.Left = preTravel(t1.Left, nil)
node.Right = preTravel(t1.Right, nil)
} else {
node.Val = t2.Val
node.Left = preTravel(nil, t2.Left)
node.Right = preTravel(nil, t2.Right)
}
return node
}