非独立思考

    1. public boolean findTarget(TreeNode root, int k) {
    2. // HashSet的特性,可以在无需使用value值时特殊处理
    3. // 其底层还是HashMap,只不过Value值默认
    4. HashSet set = new HashSet();
    5. return findTarget(root, k, set);
    6. }
    7. public boolean findTarget(TreeNode root, int k, HashSet set) {
    8. // 递归结束条件
    9. if (root == null) {
    10. return false;
    11. }
    12. if (set.contains(root.val)) {
    13. return true;
    14. }
    15. // 没有找到“目标和数”,就继续添加值
    16. set.add(k - root.val);
    17. // 递归查询其左右子树
    18. return findTarget(root.left, k, set) || findTarget(root.right, k, set);
    19. }