例如,对于以下树:
n1(值:1,左:空,右:空)n2(值:2,左:n1,右:n3)n3(值:3,左:空,右:空)调用包含(n2,3)应该返回true,因为根目录在n2的树包含数字3。
我是编程新手,试图解决理解编程概念的挑战。这不是作业问题。
我已经编写了下面的代码,但它总是返回false。
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 BinaryTree {
public static boolean contains(Node root, int value){
if(root == null) return false;
else
return
contains(root.left, value) ||
contains(root.right, value);
}
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));
}
}
如果节点上的值与搜索的值相对应,则缺少检查。所以基本上总是返回false,因为在某一点上,root将等于null。为了避免这种情况,需要一个else-if子句,在该子句中检查节点的值和搜索的值,如果这两个值相等,则返回true。
public static boolean contains(Node root, int value){
if(root == null) return false;
else if (root.value==value) return true;
else
return
contains(root.left, value) ||contains(root.right, value);
}
我写了一个函数,如果给定的二叉树是二叉搜索树,则返回true,否则返回false。 我的功能对吗?
本文向大家介绍检查Java ArrayList是否包含给定项,包括了检查Java ArrayList是否包含给定项的使用技巧和注意事项,需要的朋友参考一下 java.util.ArrayList.contains()方法可用于检查Java ArrayList是否包含给定项。此方法具有单个参数,即测试了其在ArrayList中是否存在的项目。如果该项目在ArrayList中存在,则返回true;如果
检查给定行是否为java代码的正确方法是什么? 输入:日志支持。java:44 com/sun/activation/registries/LogSupport日志(Ljava/lang/String;)五、 预期输出:false。 输入:扫描仪输入=新扫描仪(系统输入); 预期输出:true。 我尝试了EclipseJDTASTParser来检查是否可以创建AST。代码如下: 但这是行不通的。有
org.springframework.dao.invalidDataAccessapiUsageException:参数值[D2_label1]与预期的类型[java.util.Collection(N/A)]不匹配;嵌套异常为java.lang.IllegalArgumentException:参数值[D2_label1]与org.springframework.orm.jpa.EntityM
我知道如何检查给定的树是否是二叉树。但问题是,如果树包含重复的值,该怎么办。 如何检查可能包含重复值的树是否是二叉查找树重复值必须位于树/子树的右侧。