Skip to content

Commit 186f431

Browse files
committed
add 1305 TS solution
1 parent 8d2011c commit 186f431

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* class TreeNode {
4+
* val: number
5+
* left: TreeNode | null
6+
* right: TreeNode | null
7+
* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
8+
* this.val = (val===undefined ? 0 : val)
9+
* this.left = (left===undefined ? null : left)
10+
* this.right = (right===undefined ? null : right)
11+
* }
12+
* }
13+
*/
14+
15+
function getAllElements(root1: TreeNode | null, root2: TreeNode | null): number[] {
16+
function getElements(node: TreeNode | null): number[] {
17+
let res: number[] = [];
18+
let queue: TreeNode[] = [];
19+
while(node || queue.length) {
20+
if(node){
21+
queue.push(node);
22+
node = node.left;
23+
continue;
24+
}
25+
node = queue.pop();
26+
res.push(node.val);
27+
node = node.right;
28+
}
29+
return res;
30+
}
31+
let res :number[] = [];
32+
let arr1 = getElements(root1);
33+
let ptr1 = arr1.length-1;
34+
let arr2 = getElements(root2);
35+
let ptr2 = arr2.length-1;
36+
let ptr = arr1.length + arr2.length - 1;
37+
while(ptr >= 0){
38+
if(ptr2<0 || arr1[ptr1] > arr2[ptr2]) {
39+
res[ptr--] = arr1[ptr1--];
40+
} else {
41+
res[ptr--] = arr2[ptr2--];
42+
}
43+
}
44+
return res;
45+
};

0 commit comments

Comments
 (0)