为什么报错说没有返回值

为什么报错说没有返回值

# 具体遇到的问题
老师这是我在练习途中遇到的一个问题,为什么系统报错说没有返回值
# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

/**

 * Definition for a binary tree node.

 * public class TreeNode {

 *     int val;

 *     TreeNode left;

 *     TreeNode right;

 *     TreeNode(int x) { val = x; }

 * }

 */

class Solution {

    public TreeNode searchBST(TreeNode root, int val) {

        if(root ==null){

            return root;

        }

        else if(root.val == val){

            return root;

        }

        else if(root.val < val){

            return searchBST(root.right,val);

        }

        else if (root.val>val){

            return searchBST(root.left,val);

        }

    }

}

在这里输入代码,可通过选择【代码语言】突出显示

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小班 2020-12-21 09:56:40

同学你好,按照语法格式,同学这样并不符合语法规范,如下所示的所有if判断,如果所有if条件不成立的情况下,执行后并没有返回值

http://img1.sycdn.imooc.com//climg/5fdffff809248d7a04250330.jpg

所以同学应该加上一个else(所有条件不成立)的情况下的返回值,比如

http://img1.sycdn.imooc.com//climg/5fe000a7095775fe02870113.jpg

或者同学可以省略else  直接写return。

好帮手慕小班 2020-12-20 14:19:30

同学你好,测试贴出内容,报错信息是val cannot be resolved or is not a field  -->val不能解析或不是字段

http://img1.sycdn.imooc.com//climg/5fdeec6209b5702b05750146.jpg

这里调用的val是方法吗,还麻烦同学将自己完整的代码贴出。这里老师并没有复现同学所描述的问题。

  • 提问者 dddddda #1

    老师我这个是LeetCode上的题,我就想问一下为什么这几个if语句里面我都写了return,还报错说没有返回值。按照语法规则来说的话,我这个函数是应该有返回值得吗

    2020-12-21 09:07:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师