Dfs
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param t1 TreeNode类
* @param t2 TreeNode类
* @return TreeNode类
*/
public TreeNode mergeTrees (TreeNode t1, TreeNode t2) {
// write code here
if (t1 == null){
return t2;
}
if (t2 == null){
return t1;
}
t1.left = mergeTrees(t1.left, t2.left);
t1.right = mergeTrees(t1.right, t2.right);
t1.val = t1.val + t2.val;
return t1;
}
}
bfs
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param t1 TreeNode类
* @param t2 TreeNode类
* @return TreeNode类
*/
public TreeNode mergeTrees (TreeNode t1, TreeNode t2) {
// write code here
if (t1 == null){
return t2;
}
if (t2 == null){
return t1;
}
Deque<TreeNode> q = new ArrayDeque<>();
Deque<TreeNode> q1 = new ArrayDeque<>();
Deque<TreeNode> q2 = new ArrayDeque<>();
TreeNode node = new TreeNode(t1.val + t2.val);
q.offer(node);
q1.offer(t1);
q2.offer(t2);
while (!q1.isEmpty() && !q2.isEmpty() ){
TreeNode temp = q.poll();
TreeNode temp1 = q1.poll();
TreeNode temp2 = q2.poll();
if (temp1.left != null && temp2.left != null){
temp.left = new TreeNode(temp1.left.val + temp2.left.val);
q.offer(temp.left);
q1.offer(temp1.left);
q2.offer(temp2.left);
} else if (temp1.left != null) temp.left = temp1.left;
else temp.left = temp2.left;
if (temp1.right != null && temp2.right != null){
temp.right = new TreeNode(temp1.right.val + temp2.right.val);
q.offer(temp.right);
q1.offer(temp1.right);
q2.offer(temp2.right);
} else if (temp1.right != null) temp.right = temp1.right;
else temp.right = temp2.right;
}
return node;
}
}