题目
剑指 Offer 24. 反转链表
题解
递归
1,先递归到链表的尾部:
2,反转尾部,变为头部:
3,以此类推,完成反转:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
class Solution { public ListNode reverseList(ListNode head) { if (head == null || head.next == null) return head;
ListNode cur = reverseList(head.next);
head.next.next = head;
head.next = null; return cur; } }
|
leetcode-cn
执行用时:
1 2
| 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户 内存消耗:40.7 MB, 在所有 Java 提交中击败了71.89%的用户
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
func reverseList(head *ListNode) *ListNode { if head == nil ||head.Next == nil { return head } cur := reverseList(head.Next) head.Next.Next = head head.Next = nil return cur }
|
如果本篇文章对你有帮助,可以给作者加个鸡腿~(*^__^*),感谢鼓励与支持!
微信支付
支付宝