【发布时间】:2014-06-21 07:05:37
【问题描述】:
我正在尝试使用下面的代码,但结果总是true;
public boolean isPallindrome(Link link, Link right) {
if (right == null)
return true;
if (!isPallindrome(link, right.getNext())) {
return false;
}
boolean isP1 = right.getData() == link.getData();
link = link.getNext();
return isP1;
}
调用:-
System.out.println(link1.isPallindrome(link1.getFirst(), link1.getFirst()));
我认为罪魁祸首是从 right 与 null 进行检查的返回值。它可能总是返回true。有人可以建议如何解决这个问题。
【问题讨论】:
-
abcba是回文,因为ith 字符等于n - ith 字符。您需要检查方法的每次调用的两个方向,但很难说Links 是如何传入的(甚至它们代表什么)。 似乎您正在检查ith 字符是否等于ith 字符,当然它始终是true。 -
你能告诉我们链接是在哪里定义的,或者显示它的定义吗?是单链表还是双链表?
-
你应该接受这个问题的答案,因为这个页面的浏览量很高,如果问题接受了答案,人们可以很容易地找到答案,请接受最高票数的答案,因为它帮助了更多的人人
标签: java algorithm recursion data-structures linked-list