0
問題:遞歸地反轉單向鏈表。遞歸反向鏈接列表,爲什麼它是錯的
我知道如何解決這個問題,但我的一個遞歸方法是錯誤的,我無法弄清楚這個代碼有什麼問題。任何人都可以弄清楚嗎?非常感謝!
測試用例: 輸入: [1,2,3] 輸出: [3,1] 預期: [3,2,1]
public class Solution {
// recursive
ListNode last = null;
public ListNode reverseList(ListNode head) {
if (head == null) return null;
helper(head);
return last;
}
private ListNode helper(ListNode head) {
// base case
if (head.next == null) {
last = head;
return head;
}
// general case
ListNode prev = reverseList(head.next); // should be ListNode prev = helper(head.next);
prev.next = head;
head.next = null;
return head;
}
}
爲您使用的編程語言添加標籤會很有幫助。 – fvu
在recusive函數中使用「全局」(最後一個)通常是一個不好的跡象。 –
另一個不好的跡象是,你從'reverseList'中沒有使用的方法'helper'返回一些東西... – Renzo