[路飞]_1305. 两棵二叉搜索树中的所有元素

114 阅读1分钟

题目路径

题目描述

给你 root1 和 root2 这两棵二叉搜索树。请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序。

示例 1:

image.png

输入: root1 = [2,1,4], root2 = [1,0,3]
输出: [0,1,1,2,3,4]

示例 2:

image.png

输入: root1 = [1,null,8], root2 = [8,1]
输出: [1,1,8,8]

代码

var getAllElements = function(root1, root2) {
    let lnums = [], rnums = [];
    getResult(root1, lnums);
    getResult(root2, rnums);
    let ret = [];
    let p1 = 0, p2 = 0;
    while(p1 < lnums.length || p2 < rnums.length) {
        if((p2 >= rnums.length) || (p1 < lnums.length && lnums[p1] <= rnums[p2])){
            ret.push(lnums[p1++]);
        }else{
            ret.push(rnums[p2++]);
        }
    }
    return ret;
};
var getResult = function(root, arr) {
    if(root == null) return ;
    getResult(root.left, arr);
    arr.push(root.val);
    getResult(root.right, arr);
    return ;
}