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);
        }
        
    }
  • 相关阅读:
    GPUImage源码解读之GPUImageFramebuffer
    CSS之定位
    CSS之浮动
    CSS之盒子模型
    CSS之元素
    CSS之选择器
    iOS图片瘦身总结
    iOS动画——CoreAnimation
    iOS动画——DynamicAnimate
    iOS动画——UIKit动画
  • 原文地址:https://www.cnblogs.com/wxisme/p/7338772.html
Copyright © 2011-2022 走看看