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

106 阅读1分钟

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

示例 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]

解题:

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