我再次需要一些Java帮助...我有这个简单的自定义节点类:
class Node{
private int elem;
private Node next;
public Node(int elem, Node next){
this.elem = elem;
this.next = next;
}
public int getElem(){
return elem;
}
public void setElem(int elem){
this.elem = elem;
}
public Node getNext(){
return next;
}
public void setNext(Node next){
this.next = next;
}
}
我需要实现一个静态布尔方法,该方法将两个节点作为参数,如果第一个节点的所有元素都包含在第二个节点中,则返回true。示例输出:
1) Node p {5} Node q {5,5} returns true since element 5 of Node p is also in Node q
2) Node p {1,3,5} Node q {0,1,2,3,4,5} returns true since
all elements of Node p are also in Node q
3) Node p {5,3} Node q {3,4,6} returns false because
element 5 of Node p is not in Node q
4) If first Node given as parameter to method is empty
(with no values), the method will return true.
这是我的想法:
public static boolean included(Node p, Node q){
//every element in p is in q?
int count = 0;
int temp = 0;
int length = 0;
while(p != null){
temp = p.getElem();
length++;
while(q != null){
if(q.getElem() == temp)
count++;
q = q.getNext();
}
p = p.getNext();
}
return length == count || p == null;
}
对于< code >节点p的每个元素,我必须检查它是否也在< code >节点q中。如果为真,我增加一个名为< code>count的整数,否则我什么也不做。一旦在所有p元素上完成了这个检查,我就检查< code>count ==节点p的大小或者< code >节点p是否为空,也就是null
问题是:此方法总是返回true。我试图从返回值中删除p==null
并且发生了一些变化,所以我怀疑这就是问题所在,所以我向您展示了如何创建节点:
Node p = null;
Node q = null;
int arr1[] = {5,4,3,2,1,0};
int arr2[] = {5,3,1};
for(int i = 0; i < arr1.length; i++)
p = new Node(arr1[i], p);
for(int i = 0; i < arr2.length; i++)
q = new Node(arr2[i], q);
对于这些节点,我应该得到<code>true,但只有当指令<code>p==null
你们将如何实施方法?希望我已经说清楚了。非常感谢
考虑以下代码行:
while(p != null){
...
}
return ... || p == null;
显然,这总是会返回true,因为当循环退出时,p总是为null。
我建议您在两种方法中实现逻辑。第一个检查节点或其后续节点是否包含元素。第二个检查具有第二个节点的所有元素。
boolean hasElement(int elem) {
return this.elem == elem || (next != null && next.hasElement(elem));
}
boolean hasAllElements(Node node1, Node node2) {
return node2.hasElement(node1.elem) && (next == null || hasAllElements(next, node2));
}
我遇到了这个问题,似乎在任何地方都找不到解决办法。 给定一个二叉树,其中每个节点都包含一个数字,表示其子树中剩余节点的数量,编写一个函数,返回第n个按顺序遍历的节点。 查找按序遍历的第n个节点相当简单,但如何使用关于左节点数的信息来改进该过程?
问题内容: 据我所知,“ …”表示下面代码段中数组的长度。 另一方面,正如我猜想的那样,“ …”表示将以下代码段中的切片拆分为int的参数。我对此不太确定。 现在,两种含义的差异使我很难理解“ …”是什么。 问题答案: 您已经注意到Go中的两种情况。实际上,有3个: 在编译时 评估为[3] int {1,2,3} 解压缩作为函数的参数。这与您错过的一个(可变参数的定义)相匹配: 现在是另一个问题(
我遇到了一个问题,我知道如何计算树中的所有节点,像这样
Windows, VSC,运行得到了这个 npm WARN生命周期用于脚本的节点二进制文件是C:\Program Files\nodejs\node.exe但npm使用的是C:\某地\AppData\漫游\npm\node_modules\节点\bin\node.exe本身。使用选项包含节点二进制npm执行时使用的路径。 我理解这意味着我的本地版本与PATH变量(C:\Program Files…
只是想知道是否有任何API可以知道在Curator框架中使用CuratorFramework类的特定节点是领导者。我正在使用LeaderLatch,但即使节点是leader(由Zookeeper框架选择),也无法工作。 注意:在集群设置中配置了3个节点。 Zookeeper框架将负责选择节点。我需要知道选定的策展人客户是否指向领导者。 输出是 如果领导相应的微服务失败,则需要选择其他领导。每个微服
我目前正在为XML文档流开发一个自定义管道组件,其中根节点和该根节点的第一个子节点需要剥离,只剩下第二个子节点(现在是新的根节点)。 我正在使用XDocumt作为XML文档的容器类。我写了一些代码,获取第二个子节点,并创建一个新的XML文档,将该节点作为根节点,从而从图片中删除两个不需要的节点。 但是当我在Biztalk中测试这个设置时,我只得到一个空文档作为响应。它似乎创建了一个空的XML文档,