题解 | #合并二叉树#

合并二叉树

https://www.nowcoder.com/practice/7298353c24cc42e3bd5f0e0bd3d1d759

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
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务