zoukankan      html  css  js  c++  java
  • 【leetcode】1214.Two Sum BSTs

    题目如下:

    Given two binary search trees, return True if and only if there is a node in the first tree and a node in the second tree whose values sum up to a given integer target.

    Example 1:

    Input: root1 = [2,1,4], root2 = [1,0,3], target = 5
    Output: true
    Explanation: 2 and 3 sum up to 5.
    

    Example 2:

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

    Note:

    1. Each tree has at most 5000 nodes.
    2. -10^9 <= target, node.val <= 10^9

    解题思路:我用的是最直接的方法,把两棵树的节点的值分别存到两个字典中,然后遍历字典,看看能不能组成target。

    代码如下:

    # Definition for a binary tree node.
    class TreeNode(object):
        def __init__(self, x):
            self.val = x
            self.left = None
            self.right = None
    
    class Solution(object):
        def twoSumBSTs(self, root1, root2, target):
            """
            :type root1: TreeNode
            :type root2: TreeNode
            :type target: int
            :rtype: bool
            """
            dic1 = {}
            dic2 = {}
            def recursive(node,dic):
                if node != None:
                    dic[node.val] = 1
                if node.left != None:
                    recursive(node.left,dic)
                if node.right != None:
                    recursive(node.right, dic)
            recursive(root1,dic1)
            recursive(root2,dic2)
            for val in dic1.iterkeys():
                if target - val in dic2:
                    return True
            return False
  • 相关阅读:
    用户价值和RFM模型
    产品生命周期(Product Life Circle,PLC)
    金字塔原理(Pyramid Principle)
    docker 技术
    网易实战+scrapy-redis配置
    uiautomator工具使用(7)
    adb命令行工具(6)
    Android 开发工具安装(5)
    appium 移动端自动化测试工具(4)
    mitmdump 详解(3)
  • 原文地址:https://www.cnblogs.com/seyjs/p/11629275.html
Copyright © 2011-2022 走看看