当前位置: 首页 > 知识库问答 >
问题:

如何编写这个返回语句,这样我就不会返回NULL了?

苗阳文
2023-03-14

只是无法计算方法中的return语句。

 public LinkedList bfs_search(String numberEntered) {  
    //use a queue for all the unsearched combinations to go
    Queue<String> q = new LinkedList<String>();  

    q.add(""); 

    String possibleWord = null;

    //loop through each number entered
    for(int i = 0; i < numberEntered.length(); i++) {  
        //get the letters on the keypad for current number
        String lettersOnKeypadNumber = T9keypad[numberEntered.charAt(i) - ASCII_ZERO];  
        int len = q.size();  

        //loop while there are letter sequences in the queue.  Note len-- is same as len=len-1 so loop until only one item left in queue (the blank item inserted above)
        while(len -- > 0) {  
            String letterSequenceFromQ = q.remove();  
            //loop through each letter on the keypad number, add it to the letter sequence pulled from queue and search for that letter sequence as a word in the trie
            for(int j = 0; j < lettersOnKeypadNumber.length(); j++) {  
                possibleWord = letterSequenceFromQ + lettersOnKeypadNumber.charAt(j);  
                //q.add(tmpStr);  
                if(search(possibleWord) && possibleWord.length() == numberEntered.length()) {  
                    //found it!
                   return possibleWords(possibleWord); 

                } else {
                    //letter sequence is not a word, add it to the queue for possible word when get the next set of letters for the next keyed number
                    q.add(possibleWord);                      
                }  
            }  
        }

   } 
   return null;          
}  

共有1个答案

狄兴业
2023-03-14

您的方法签名是一个契约--您将返回一个链表。在这种情况下,您需要做两件事之一--返回一个链表,无论是否为空,或者如果确实存在一个包含>0项的链表,则抛出异常。

add(“”)除了允许使用len作为循环条件之外,什么也不做。使用Q.IsEmpty作为控件:您要么离开循环,要么向队列中添加字符串。

由于您正在结束if子句中的循环,请从q.add中删除else{}

 类似资料:
  • 我正在寻找一个数据结构,会给我这样的输出: 这个结构能用吗?

  • 在截断表的函数中,我可以使用 我正在使用参数化的准备语句来选择、插入和更新,没有任何问题。

  • 在 C 中,当一个应该返回对象的函数在没有 return 语句的情况下结束时会发生什么?会得到什么回报? 例如。

  • 为什么我的异步任务返回NULL?它以前工作得很好。我做错了什么? 这是我的代码。 日志类别08-22 09:51:04.279 113 59-11359/com.example.android.top10Music E/AndroidRuntime:致命异常:主进程:com.example.android.top10Music,PID:11359java.lang.nullPointerExcep

  • 我有两个活动和两个布局。当我在第一个活动中显示列表时,一切都正常,并在单击时给出列表中项目的编号,但当我尝试在第二个活动中重复相同的内容时,它会告诉我RecycleServiceClickListener侦听器为空。 适配器: 第一项活动: 第二项活动: 错误: 我不明白为什么在第一种情况下,它正常处理单击,而在第二种情况下,它说RecyclerViewClickListener为null

  • 问题内容: 我刚刚学习(正在学习)函数参数在Python中的工作方式,并且在没有明显原因的情况下开始进行实验: 给出了输出: 哪里来的?还有,这是什么? 问题答案: 它是函数的返回值,您可以将其打印出来。如果没有语句(或者只是没有参数的),则将隐式添加到函数的末尾。 您可能想返回函数中的值,而不是打印它们: