題目
給定兩個(gè)二叉樹年碘,想象當(dāng)你將它們中的一個(gè)覆蓋到另一個(gè)上時(shí)嘶伟,兩個(gè)二叉樹的一些節(jié)點(diǎn)便會(huì)重疊除嘹。
你需要將他們合并為一個(gè)新的二叉樹写半。合并的規(guī)則是如果兩個(gè)節(jié)點(diǎn)重疊,那么將他們的值相加作為節(jié)點(diǎn)合并后的新值尉咕,否則不為?NULL 的節(jié)點(diǎn)將直接作為新二叉樹的節(jié)點(diǎn)叠蝇。
示例?1:
輸入:
Tree 1? ? ? ? ? ? ? ? ? ? Tree 2? ? ? ? ? ? ? ? ?
? ? ? ? ? 1? ? ? ? ? ? ? ? ? ? ? ? 2? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? / \? ? ? ? ? ? ? ? ? ? ? / \? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? 3? 2? ? ? ? ? ? ? ? ? ? 1? 3? ? ? ? ? ? ? ? ? ? ? ?
? ? ? /? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\? ? \? ? ? ? ? ? ? ? ? ? ?
? ? ? 5? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4? 7? ? ? ? ? ? ? ? ?
輸出:
合并后的樹:
? ? 3
? ? / \
? 4? 5
? / \? \
5? 4? 7
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/merge-two-binary-trees
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán)年缎,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處悔捶。
題解及思路
源碼
/**
?*?Definition?for?a?binary?tree?node.
?*?public?class?TreeNode?{
?*?????int?val;
?*?????TreeNode?left;
?*?????TreeNode?right;
?*?????TreeNode(int?x)?{?val?=?x;?}
?*?}
?*/
class?Solution?{
????public?TreeNode?mergeTrees(TreeNode?t1,?TreeNode?t2)?{
????????if?(t1?==?null)?{
????????????return?t2;
????????}
????????if?(t2?==?null)?{
????????????return?t1;
????????}
????????t1.val?+=?t2.val;
????????t1.left?=?mergeTrees(t1.left,?t2.left);
????????t1.right?=?mergeTrees(t1.right,?t2.right);
????????return?t1;
????}
}