653. 兩數之和 IV - 輸入 BST

給定一個二叉搜索樹和一個目標結果,如果 BST 中存在兩個元素且它們的和等於給定的目標結果,則返回 true。

案例 1:

輸入: 
    5
   / \
  3   6
 / \   \
2   4   7

Target = 9

輸出: True


案例 2:

輸入: 
    5
   / \
  3   6
 / \   \
2   4   7

Target = 28

輸出: False
class Solution {
    public void dfs(TreeNode root){
        if(root != null){
            dfs(root.left);
            list.add(root.val);
            dfs(root.right);
        }
    }
    List<Integer> list = new ArrayList();
    public boolean findTarget(TreeNode root, int k) {      
        if(root == null)
            return false;
        dfs(root);
        int i = 0,j = list.size()-1;
        while(i < j){
            int val = list.get(i) + list.get(j);
            if(val > k)
                j--;
            if(val < k)
                i++;
            if(val == k)
                return true;
        }
        return false;
    }
}

兩個數的和,有序數組,前後兩個指針。

發佈了199 篇原創文章 · 獲贊 27 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章