题目
给你 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]
提示:
- 每棵树的节点数在 [0, 5000] 范围内
- -10e5 <= Node.val <= 10e5
题解
- 中序遍历+排序,一开始还想了一下怎么两个一起排,想不出
代码
/**
* Definition for a binary tree node.
* class TreeNode {
* val: number
* left: TreeNode | null
* right: TreeNode | null
* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
* }
*/
function inorderTraversal(root:TreeNode | null,arr:number[]):void{
if(root===null){
return;
}
inorderTraversal(root.left,arr);
arr.push(root.val);
inorderTraversal(root.right,arr);
}
function getAllElements(root1: TreeNode | null, root2: TreeNode | null): number[] {
const arr1 =[];
inorderTraversal(root1,arr1);
const arr2 = [];
inorderTraversal(root2,arr2);
return [...arr1,...arr2].sort((a,b)=>a-b);
};