解法一
同时遍历两棵树,判断稍微多做一些,其他和一棵树遍历差不多。
/*** 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) && (t2 == null)) {return null;}int sum = 0;if (t1 != null) {sum += t1.val;}if (t2 != null) {sum += t2.val;}TreeNode newNode = new TreeNode(sum);// Tree 1为空if (t1 == null) {if (t2.left != null) {newNode.left = mergeTrees(null, t2.left);}if (t2.right != null) {newNode.right = mergeTrees(null, t2.right);}} else if (t2 == null) { // Tree 2为空if (t1.left != null) {newNode.left = mergeTrees(t1.left, null);}if (t1.right != null) {newNode.right = mergeTrees(t1.right, null);}} else { // 均不为空newNode.left = mergeTrees(t1.left, t2.left);newNode.right = mergeTrees(t1.right, t2.right);}return newNode;}}
