-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path1305.py
29 lines (27 loc) · 864 Bytes
/
1305.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Solution:
def getAllElements(self, root1: TreeNode, root2: TreeNode) -> List[int]:
def inorder(node: TreeNode, res: List[int]):
if node:
inorder(node.left, res)
res.append(node.val)
inorder(node.right, res)
nums1, nums2 = [], []
inorder(root1, nums1)
inorder(root2, nums2)
merged = []
p1, n1 = 0, len(nums1)
p2, n2 = 0, len(nums2)
while True:
if p1 == n1:
merged.extend(nums2[p2:])
break
if p2 == n2:
merged.extend(nums1[p1:])
break
if nums1[p1] < nums2[p2]:
merged.append(nums1[p1])
p1 += 1
else:
merged.append(nums2[p2])
p2 += 1
return merged