作为二叉搜索树的一部分,我有一个非常基本的方法,如果当前二进制节点有一个正确的子节点,则返回True;如果右边的子节点指向null,则返回False.
public boolean hasRight(){
if(right.element != null){
return true;
}else{
return false;
}
Run Code Online (Sandbox Code Playgroud)
但是每当我测试这段代码时,我知道我将到达一个没有正确子节点的节点,并希望我的代码只返回False,java会在该行抛出NullPointerException
if(right.element != null)
Run Code Online (Sandbox Code Playgroud)
而不是像我期望的那样返回False.
编辑:
修复了我的代码,在尝试获取正确的元素之前,只需检查自己是否为null
public boolean hasRight(){
if(right != null){
return true;
}else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud) 我很难理解如何为lambda表达式的家庭作业问题构建解决方案.我必须编写一个函数,它接受一个参数F,它是一个谓词函数,并返回一个F函数的新函数.
我知道在我的函数中的某个地方我将返回传入的谓词函数中的值而不是返回反向但我对其余的问题描述感到困惑.问题表明"你需要一个lambda内的lambda.因为你不知道F将采用多少个参数(实际上可能采用一个变量号),你将不得不使用apply和语法来定义一个lambda表达式这需要任意数量的参数"
我不明白如何设置嵌套的lambda表达式来做我想做的事情,返回F可能的反转.我一直在尝试一些不同的东西,只是为了看看我是否可以到达任何地方,但我不明白嵌套的lambda表达式如何工作到足以让我到处都是.
(define converse
(lambda (F)
(lambda
(apply (not (F))))))
Run Code Online (Sandbox Code Playgroud)
我知道这不起作用,但我需要帮助了解如何设置我的嵌套lambda表达式来做我想要的.
我认为这是一个非常微不足道的问题,但我还没有看到任何好的例子.我需要定义一个不带参数的lambda表达式,并且总是返回0.
我如何定义一个不带任何参数的lambda表达式并返回一些东西?