leetcode 1305. All Elements in Two Binary Search Trees(python)

286 阅读1分钟

描述

Given two binary search trees root1 and root2.

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

Example 1:

avatar

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:

avatar

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

Note:

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

解析

根据题意,就是将两棵树的数都找出来,然后排序,所以第一步就是递归将两棵树的所有数字找出来放入一个数组,然后对数组排序即可。

解答

class Solution(object):
    def getAllElements(self, root1, root2):
        """
        :type root1: TreeNode
        :type root2: TreeNode
        :rtype: List[int]
        """
        res = []
        def findNode(root, res):
            if not root:
                return 
            res.append(root.val)
            if root.left:
                findNode(root.left, res)
            if root.right:
                findNode(root.right, res)
        findNode(root1, res)
        findNode(root2, res)
        res.sort()
        return res
        	      
		

运行结果

Runtime: 336 ms, faster than 94.68% of Python online submissions for All Elements in Two Binary Search Trees.
Memory Usage: 23 MB, less than 28.72% of Python online submissions for All Elements in Two Binary Search Trees.

原题链接:leetcode.com/problems/al…

您的支持是我最大的动力