簡體   English   中英

使用遞歸的回文鏈表

[英]Palindrome Linkedlist using recursion

索引從 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將以相反的方式存儲數據,因為它在遞歸 function 之后。 然后可以比較字符串。

由於您沒有提供可重現的示例,因此我無法運行您的代碼並驗證任何假設。 所以這僅來自檢查。

  1. 如果列表中的數字是 1 和 11,則它不是回文。 然而你的字符串s1s2應該都變成111 ,這是相等的,所以你的方法應該返回true
  2. 您最后沒有測試 -1 。 你不應該嗎?

順便說一句,我沒有看到任何索引,也沒有看到元素之間的任何空格。

我也不明白運行時錯誤是如何發生的,抱歉。 同樣,運行您的代碼可能給了我更大的機會。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM