当前位置: 首页 > 知识库问答 >
问题:

Java-包括BST

富凯风
2023-03-14

我有这个BST的问题,我想在Java解决,但我不知道为什么它不起作用。问题就在这里:

>

  • 二叉搜索树(BST)是一种二叉树,其中每个节点的值大于或等于该节点左子树中所有节点的值,而小于该节点右子树中所有节点的值。

    编写一个函数,检查给定的二叉搜索树是否包含给定的值。

    例如,对于以下树:

    n1(值:1,left:null,right:null)n2(值:2,left:n1,right:n3)n3(值:3,left:null,right:null)对contains(n2,3)的调用应返回true,因为根位于n2的树包含数字3。

    这就是我试图解决的方法:

        class Node {
        public int value;
        public Node left, right;
    
        public Node(int value, Node left, Node right) {
            this.value = value;
            this.left = left;
            this.right = right;
        }
    }
    
    public class BinarySearchTree {
        public static boolean contains(Node root, int value) {
           if(root.value == value)
               return true;
    
           else if(value < root.value){
               if(root.left == null)
                   return false;
               contains(root.left, value);
           }
           else if(value > root.value){
               if(root.right == null)
                   return false;
               contains(root.right, value);
           }
    
            return false;
        }
    
    
        public static void main(String[] args) {
            Node n1 = new Node(1, null, null);
            Node n3 = new Node(3, null, null);
            Node n2 = new Node(2, n1, n3);
    
            System.out.println(contains(n2, 3));
        }
    }
    

    这应该是真的,但它没有...提前谢谢你。

  • 共有1个答案

    云欣嘉
    2023-03-14

    return contains(...)而不是只对那些递归调用调用contains(...),这样在进行值时就不会丢失值

     类似资料:
    • HTML不支持在HTML页面中嵌入HTML页面。 要实现此功能,我们可以使用以下选项之一 - Using Ajax - 进行服务器调用以获取相应的HTML页面并将其设置在HTML控件的innerHTML中。 Using Server Side Includes - JSP,PHP和其他Web端服务器技术可以在动态页面中包含HTML页面。 使用AngularJS,我们可以使用ng-include指令

    • 问题内容: 我已按照本教程进行操作:http : //golang.org/doc/articles/wiki/final.go,并根据我的需要/想要对其进行了略微修改。问题是我想在模板中支持HTML。我意识到这是安全隐患,但目前尚无问题。 页面渲染的结果: 让我解释一下代码: 我想要的HTML数据存储在中。这是类型,表示我无法(或可以吗?)运行该函数需要一个字符串。 我有这个预渲染模板: 实际的

    • 我正试图在Mac OS X El Capitan上使用创建一个虚拟环境。我已经用安装了Python 2.7.11,默认情况下包括、和。 然而,当我尝试安装以下说明在留档或从任何其他资源,我得到几个问题: 完成其工作后,可执行文件未放置在中,因此我需要手动它(这可能表明此步骤的安装有问题) 运行后,它会创建新的环境,从-安装中捕获Python 2.7.11,但是:文件夹中没有。这意味着,如果我尝试,

    • 问题内容: Java中是否有等同于php date()样式格式的格式?我的意思是,在php中,我可以反斜杠转义字符以按字面意义对待它们。即 yyyy \ y \ e \ a \ r 将成为 2010年 。我没有在Java中找到任何类似的东西,所有示例仅处理内置日期格式。 特别是,我处理JCalendar日期选择器及其 dateFormatString 属性。 我需要它,因为在我的语言环境中,需要以

    • 问题内容: 在1.6.0_16 JDK上工作时,我使用Apache CXF 2.5.2从WSDL生成了存根类,Apache CXF 2.5.2使用了最新的jaxb- api 2.2。我知道可以使用jaxb-api 2.1,但是为了避免兼容性问题,我宁愿使用当前版本。由于我的JDK具有jaxb 2.1,因此构建失败并显示以下消息: 因此,我尝试使用以下依赖项使Maven包括最新的jaxb api和i

    • 问题内容: 我的head标签中未包含以下代码行,但是我的收藏夹图标仍显示在浏览器中: 包含它的目的是什么? 问题答案: 如果您不调用favicon,则可以使用该标记来指定实际路径(如果您将其放在目录中)。默认情况下,浏览器/网页在根目录中查找。