653. 两数之和 IV - 输入 BST

Posted hequnwang10

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了653. 两数之和 IV - 输入 BST相关的知识,希望对你有一定的参考价值。

一、题目描述

给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。

示例 1:

输入: root = [5,3,6,2,4,null,7], k = 9
输出: true
示例 2:

输入: root = [5,3,6,2,4,null,7], k = 28
输出: false

二、解题

中序遍历

看到二叉搜索树就可以使用中序遍历,这样遍历出来的数据是有序的。然后对有序数组进行查找,使用双指针从头从尾开始遍历,看相加是否等于target。

class Solution 
    List<Integer> list = new ArrayList<>();
    public boolean findTarget(TreeNode root, int k) 
       //二叉搜索树 使用中序遍历 将数据保存至列表中,升序,然后 使用双指针遍历
       inorder(root);
       int left = 0,high = list.size()-1;
       while(left < high)
           int sum = list.get(left) + list.get(high);
           if(k == sum)
               return true;
           else if(k > sum)
               left++;
           else
               high--;
           
       
       return false;
    

    public void inorder(TreeNode root)
        if(root == null)
            return ;
        
        inorder(root.left);
        list.add(root.val);
        inorder(root.right);
    

以上是关于653. 两数之和 IV - 输入 BST的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题100天—653. 两数之和 IV - 输入 BST( 二叉树)—day35

LeetCode 653 两数之和IV-输入BST[map 二叉树] HERODING的LeetCode之路

⭐算法入门⭐《二叉树 - 二叉搜索树》简单01 —— LeetCode 653. 两数之和 IV - 输入 BST

LeetCode 443. 压缩字符串 / 653. 两数之和 IV - 输入 BST / 235. 二叉搜索树的最近公共祖先

leetcode - 两数之和Ⅳ 输入BST(653)

[Leetcode]653.Two Sum IV - Input is a BST