【发布时间】:2016-05-24 03:00:47
【问题描述】:
我知道有多种方法可以判断一个单词是否是回文,比如使用 StringBuilder 的 reverse 函数,甚至 Collections 的 reverse 函数,但为了学习递归,我这样写。我什至让它迭代地工作。
我在嵌入的 else 语句中添加了 return true,但我真的不确定该怎么做,因为当我在调试模式下运行它时,它返回 false,然后再次调用 checkPalindrome,我不明白为什么,因为它应该返回并终止,不是吗?我真的很感激解释我做错了什么以及如何让它以这种方式工作。
public static boolean checkPalindrome(Deque deq) {
if(deq.pollFirst() != deq.pollLast()) {
return false;
} else {
if(deq.size() == 1 || deq.size() == 0) {
return true;
} else {
checkPalindrome(deq);
return true // TODO ?? figure out What to put here ??
}
}
}
【问题讨论】: