[leetcode] 1305. All Elements in Two Binary Search Trees

Description

Given two binary search trees root1 and root2.

Return a list containing all the integers from both trees sorted in ascending order.

Example 1:

Input: root1 = [2,1,4], root2 = [1,0,3]
Output: [0,1,1,2,3,4]

Example 2:

Input: root1 = [0,-10,10], root2 = [5,1,7,0,2]
Output: [-10,0,0,1,2,5,7,10]

Example 3:

Input: root1 = [], root2 = [5,1,7,0,2]
Output: [0,1,2,5,7]

Example 4:

Input: root1 = [0,-10,10], root2 = []
Output: [-10,0,10]

Example 5:

Input: root1 = [1,null,8], root2 = [8,1]
Output: [1,1,8,8]

Constraints:

  • Each tree has at most 5000 nodes.
  • Each node’s value is between [-10^5, 10^5].

分析

题目的意思是:取出两个二叉树的值,然后排序输出。思路也很直接,分别递归取出两个二叉树的值,然后排个序输出就行了。我特地看了一下别人的解法,实现的方式差不多,当然也可以用队列来迭代实现。

代码

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def solve(self,root):
        if(root is None):
            return
        self.res.append(root.val)
        self.solve(root.left)
        self.solve(root.right)
    def getAllElements(self, root1: TreeNode, root2: TreeNode) -> List[int]:
        self.res=[]
        self.solve(root1)
        self.solve(root2)
        self.res.sort()
        return self.res

猜你喜欢

转载自blog.csdn.net/w5688414/article/details/109300207