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 }