一 题目:
二 思路:
- 每次分别进行同一侧子树的判断,返回一个新结点;
- 如果其中一个子树不存在,那么直接用另外一个子树作为新树;
- 如果两个子树都存在,结合两个子树的值,并进行其左右孩子树的递归判断;
三 代码:
代码语言:javascript
复制class Solution {
public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
TreeNode res = dfs(root1, root2);
return res;
}
//找出合并后的结点
private TreeNode dfs(TreeNode root1, TreeNode root2) {
if (root1==null){
return root2;
}
if (root2==null){
return root1;
}
TreeNode newNode = new TreeNode(root1.val root2.val);
newNode.left=dfs(root1.left,root2.left);
newNode.right=dfs(root1.right,root2.right);
return newNode;
}
}
四 结果: