653. 两数之和 IV - 输入 BST(BST)


653. 两数之和 IV - 输入 BST

题目

给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。
在这里插入图片描述

解题思路

遍历二叉树,把它的所有节点加入到一个list中。再遍历整个list,把两两元素相加的和与k作比较。相等返回true,否则返回false;

代码

class Solution {
    public boolean findTarget(TreeNode root, int k) {
        List<Integer> list=new ArrayList<>();
        findAllRoot(list,root);
        for(int i=0;i<list.size();i++){
            for(int j=i+1;j<list.size();j++){
               int   num=list.get(i)+list.get(j);
                 if(num==k){
                    return true;
                 }
            }
        }
        
        return false;
    }

    public void findAllRoot(List<Integer> list,TreeNode root){//找到所有节点的值,并加入到list中
            if(root==null){
                    return ;
            }

            list.add(root.val);
            findAllRoot(list,root.left);
            findAllRoot(list,root.right);

    }
}

文章作者: fFee-ops
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fFee-ops !
评论
  目录