简介
题目链接:https://leetcode.cn/problems/merge-two-binary-trees/description/
解决方式:二叉树 + 递归
递归
思路:构造新的二叉树,将原本的两个二叉树按照相同的顺序往下递归,构造新的节点。大方向上先构造左子树再构造右子树。递到最深处时,子节点构造好左右子树然后往上归。
java
class Solution {
public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
// 递归终止条件
if(root1 == null) return root2;
if(root2 == null) return root1;
// 构造新的二叉树节点
TreeNode root = new TreeNode(root1.val + root2.val);
// 左子树
root.left = mergeTrees(root1.left, root2.left);
// 右子树
root.right = mergeTrees(root1.right, root2.right);
return root;
}
}