1305. 两棵二叉搜索树中的所有元素
示例 1:
输入: root1 = [2,1,4], root2 = [1,0,3]
输出: [0,1,1,2,3,4]
示例 2:
输入: root1 = [1,null,8], root2 = [8,1]
输出: [1,1,8,8]
提示:
- 每棵树的节点数在
[0, 5000]范围内 -105 <= Node.val <= 105
/**
* @param {TreeNode} root1
* @param {TreeNode} root2
* @return {number[]}
*/
var getAllElements = function(root1, root2) {
const arr1 = [];
const arr2 = [];
inOrder(root1, arr1);
inOrder(root2, arr2);
const arr = [];
while (arr1.length && arr2.length) {
if (arr1[0] < arr2[0]) {
arr.push(arr1[0]);
arr1.shift();
} else {
arr.push(arr2[0]);
arr2.shift();
}
}
if(arr1.length) {
arr.push(...arr1);
}
if(arr2.length) {
arr.push(...arr2);
}
return arr;
};
function inOrder(root, arr) {
if (!root) {
return;
}
if (root.left) {
inOrder(root.left, arr);
}
arr.push(root.val);
if (root.right) {
inOrder(root.right, arr);
}
}