617. 合并二叉樹
題目描述
-
給定兩個二叉樹拌蜘,想象當(dāng)你將它們中的一個覆蓋到另一個上時,兩個二叉樹的一些節(jié)點便會重疊。
你需要將他們合并為一個新的二叉樹荠商。合并的規(guī)則是如果兩個節(jié)點重疊,那么將他們的值相加作為節(jié)點合并后的新值续誉,否則不為 NULL 的節(jié)點將直接作為新二叉樹的節(jié)點莱没。
-
示例 1:
輸入:
Tree 1 Tree 2
1 2
/ \ / \
3 2 1 3
/ \ \
5 4 7
輸出:
合并后的樹:
3
/
4 5
/ \ \
5 4 7
注意: 合并必須從兩個樹的根節(jié)點開始。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/merge-two-binary-trees
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有酷鸦。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán)饰躲,非商業(yè)轉(zhuǎn)載請注明出處。
解法
image-20191210172911321.png
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func mergeTrees(t1 *TreeNode, t2 *TreeNode) *TreeNode {
if(t1 == nil && t2 == nil){
return nil
}else if(t1 == nil){
return t2
}else if(t2 == nil){
return t1
}else{
t1.Val+=t2.Val
t1.Left = mergeTrees(t1.Left,t2.Left)
t1.Right = mergeTrees(t1.Right,t2.Right)
return t1
}
}