美文网首页
653. Two Sum IV - Input is a BST

653. Two Sum IV - Input is a BST

作者: DrunkPian0 | 来源:发表于2017-08-06 11:17 被阅读23次

这周contest的签到题。我感觉应该有别的做法吧,但我直接把它遍历出来按照标准TWO SUM做的。。
而且在遍历的时候我竟然以为bst遍历要用preorder了。。。。MDZZ

    public boolean findTarget(TreeNode root, int k) {
        List<Integer> list = new ArrayList<>();
        preOrder(root, list);
        int i = 0, j = list.size() - 1;
        while (i < j) {
            if (list.get(i) + list.get(j) == k) {
                return true;
            }
            if (list.get(i) + list.get(j) < k) {
                i++;
            } else {
                j--;
            }
        }
        return false;
    }

    private void preOrder(TreeNode root, List<Integer> list) {
        if (root == null) {
            return;
        }
        preOrder(root.left, list);
        list.add(root.val);
        preOrder(root.right, list);
    }

相关文章

网友评论

      本文标题:653. Two Sum IV - Input is a BST

      本文链接:https://www.haomeiwen.com/subject/kfpglxtx.html