为什么报错说没有返回值

来源:2-1 多重if结构

dddddda

2020-12-20 11:29:54

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

# 相关课程内容截图

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

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

/**

 * 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);

        }

    }

}

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

写回答

2回答

好帮手慕小班

2020-12-21

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

http://img.mukewang.com/climg/5fdffff809248d7a04250330.jpg

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

http://img.mukewang.com/climg/5fe000a7095775fe02870113.jpg

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

0

好帮手慕小班

2020-12-20

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

http://img.mukewang.com/climg/5fdeec6209b5702b05750146.jpg

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

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

h020-12-21
共1条回复

0 学习 · 16556 问题

查看课程