
首先是一段跑不了的代码
错解
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/class Solution {public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {if (root1 == NULL){return root2;}if (root2 == NULL){return root1;}mergeTrees(TreeNode root1, TreeNode root2);mergeTrees(TreeNode root1, TreeNode root2);return root1+root2;}}
注意题目要我们的是合并后,所以需要构造一个新的树
中序遍历
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/class Solution {public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {if (root1 == null){return root2;}if (root2 == null){return root1;}TreeNode newtree = new TreeNode(root1.val + root2.val);newtree.left = mergeTrees(root1.left, root2.left);newtree.right = mergeTrees(root1.right, root2.right);return newtree;}}
广度搜索
累了
