【问题标题】:Palindrome Linkedlist using recursion使用递归的回文链表
【发布时间】:2020-05-03 08:39:06
【问题描述】:

索引从 0 开始。 输入格式:链表元素(空格分隔,-1终止)

一个隐藏的测试用例存在一些运行时错误。 main() 正在接受输入并传递 head

public class Solution {
    static String s1="",s2="";
    public static boolean isPalindrome_2(LinkedListNode<Integer> head) {
        if (head != null) {
            s1 = s1 + head.data;
            isPalindrome_2(head.next);
            s2 = s2 + head.data;
        }
        if (s1.equals(s2))
            return true;
        return false;
    }
}

算法应该如何工作:s1 将存储包含所有数据的字符串。 s2 将反向存储数据,因为它是在递归函数之后。然后可以比较字符串。

【问题讨论】:

  • 我猜你应该对递归调用的结果做点什么。
  • s1 将存储包含所有数据的字符串。s2 将以相反的方式存储数据,因为它是在递归函数之后。然后可以比较字符串
  • 您好,请说明运行时错误是什么,是否会发生任何输入数据?看来你需要提供minimal reproducible example

标签: java recursion palindrome


【解决方案1】:

由于您没有提供可重现的示例,我无法运行您的代码并验证任何假设。所以这仅来自检查。

  1. 如果列表中的数字是 1 和 11,则它不是回文。然而你的字符串s1s2 应该都变成111,这是相等的,所以你的方法应该返回true
  2. 您最后没有测试 -1。不应该吗?

顺便说一句,我没有看到任何索引,也没有看到元素之间的任何空格。

我也不明白运行时错误是如何发生的,抱歉。同样,运行您的代码可能给了我更大的机会。

【讨论】:

    猜你喜欢
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 2013-03-28
    • 1970-01-01
    • 2017-04-21
    相关资源
    最近更新 更多