zoukankan      html  css  js  c++  java
  • LeetCode

    Given a Binary Search Tree and a target number, return true if there exist two elements in the BST such that their sum is equal to the given target.

    Example 1:

    Input: 
        5
       / 
      3   6
     /    
    2   4   7
    
    Target = 9
    
    Output: True
    

    Example 2:

    Input: 
        5
       / 
      3   6
     /    
    2   4   7
    
    Target = 28
    
    Output: False

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public boolean findTarget(TreeNode root, int k) {
            if (root == null)
                return false;
            List<Integer> arr = new ArrayList<Integer>();
            toArr(root, arr);
            int head = 0, tail = arr.size()-1;
            while (head < tail) {
                if (arr.get(head)+arr.get(tail) == k)
                    return true;
                else if (arr.get(head)+arr.get(tail) < k) {
                    head ++;
                }
                else tail --;
            }
            return false;
        }
        
        private void toArr(TreeNode node, List<Integer> arr) {
            if (node == null)
                return ;
            toArr(node.left, arr);
            arr.add(node.val);
            toArr(node.right, arr);
        }
        
    }
  • 相关阅读:
    Model1简介
    修改Maven的本地仓库地址
    JavaWeb实现上传文件
    数据库
    集合
    JavaWeb
    Java基础
    Redis 中 redis.conf配置详细解析
    利用Java生成二维码
    利用dom4j读写XML
  • 原文地址:https://www.cnblogs.com/wxisme/p/7338772.html
Copyright © 2011-2022 走看看