0501|1305. 两棵二叉搜索树中的所有元素
暴力解:
- 递归中序遍历,把结果全部写的 res 中,然后 sort 排序;
- 优化空间:见官方解法,
- 用 num1 和 nums2 分别拿到 root1 和 root2 中序遍历的结果,是递增的;
- 然后利用双指针 p1 和 p2 把 num1 和 num2 合并到 res 数组中。时间复杂度为 O(m+n)
var getAllElements = function (root1, root2) {
const res = [];
dfs(root1);
dfs(root2);
return res.sort((x, y) => x - y);
function dfs(node) {
if (!node) return node;
dfs(node.left);
res.push(node.val);
dfs(node.right);
}
};
时间复杂度:O(n+m) + nlogn ===> O(nlogn)