Recursion 递归反转链表,为什么它是错误的

Recursion 递归反转链表,为什么它是错误的,recursion,Recursion,问题:递归地反转单链表 我知道如何解决这个问题,但我的一个递归方法是错误的,我无法找出这段代码的错误。有人能猜出来吗?非常感谢 测试用例: 输入: [1,2,3] 输出: [3,1] 预期: [3,2,1] 它不起作用,因为在helper方法的第一个过程中 ListNode prev = reverseList(head.next); 返回[3,2],然后将旧的头(1)指定为反向列表(3)新头之后的下一个节点。因此,最终结果是[3,1]。为您使用的编程语言添加一个标记会很有帮助。在递归函数中使

问题:递归地反转单链表

我知道如何解决这个问题,但我的一个递归方法是错误的,我无法找出这段代码的错误。有人能猜出来吗?非常感谢

测试用例: 输入: [1,2,3] 输出: [3,1] 预期: [3,2,1]


它不起作用,因为在
helper
方法的第一个过程中

ListNode prev = reverseList(head.next);

返回[3,2],然后将旧的
头(1)指定为反向列表(3)新头之后的下一个节点。因此,最终结果是[3,1]。

为您使用的编程语言添加一个标记会很有帮助。在递归函数中使用“global”(最后一个)通常是一个坏兆头。另一个坏兆头是,您从
helper
方法返回了一些在
reverseList
中未使用的内容。谢谢大家!我太粗心了,写错了方法名。但为什么在递归中使用全局变量不好呢?非常感谢,我知道我犯了一个错误,因为我的粗心。我更注重逻辑,但对我的写作关注较少。
ListNode prev = reverseList(head.next);