0
点赞
收藏
分享

微信扫一扫

毕业设计vue+php幼儿园网站系统yl567

盖码范 2024-02-18 阅读 9

LCR 056. 两数之和 IV - 输入二叉搜索树

解题思路

  • 二叉搜索树的中序遍历结果是一个有序数组
  • 对有序数组进行二分查找
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {    
    List<Integer> res = new ArrayList<>();

    public boolean findTarget(TreeNode root, int k) {
        traverse(root);

        int[] array = res.stream().mapToInt(i -> i).toArray();

        int left = 0;
        int right = array.length - 1;

        if(array.length == 1){
            return false;
        }

        while(left < right){
            int sum = array[left] + array[right];

            if(sum == k){
                return true;
            }else if(sum < k){
                left++;
            }else if(sum > k){
                right--;
            }
        }

        return false;
    }


    void traverse(TreeNode root){
        if(root == null){
            return;
        }

        traverse(root.left);
        if(root != null){
            res.add(root.val);
        }
        traverse(root.right);
    }
}

举报

相关推荐

幼儿园信息管理系统

0 条评论