LeetCode - 653. Two Sum IV - Input is a BST
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); } }
作者:Pickle
声明:对于转载分享我是没有意见的,出于对博客园社区和作者的尊重一定要保留原文地址哈。
致读者:坚持写博客不容易,写高质量博客更难,我也在不断的学习和进步,希望和所有同路人一道用技术来改变生活。觉得有点用就点个赞哈。