题解 | #合并二叉树#
合并二叉树
https://www.nowcoder.com/practice/7298353c24cc42e3bd5f0e0bd3d1d759
/* * function TreeNode(x) { * this.val = x; * this.left = null; * this.right = null; * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param t1 TreeNode类 * @param t2 TreeNode类 * @return TreeNode类 */ function mergeTrees(t1, t2) { return bfs(t1, t2); } function dfs(r1, r2) { if (!r1 && !r2) { return null; } if (!r1) { return r2; } if (!r2) { return r1; } r1.val += r2.val; r1.left = dfs(r1.left, r2.left); r1.right = dfs(r1.right, r2.right); return r1; } function bfs(r1, r2) { if (!r1 && !r2) { return null; } if (!r1) { return r2; } if (!r2) { return r1; } const queue = [r1, r2]; while (queue.length) { const n1 = queue.shift(); const n2 = queue.shift(); n1.val += n2.val; if (n1.left && n2.left) { queue.push(n1.left, n2.left); } if (n1.right && n2.right) { queue.push(n1.right, n2.right); } if (!n1.left && n2.left) { n1.left = n2.left; } if (!n1.right && n2.right) { n1.right = n2.right; } } return r1; } module.exports = { mergeTrees: mergeTrees, };