/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode cur = head;
ListNode next = head.next;
ListNode res = ReverseList(next);
ListNode resNext = res;
cur.next = null;
while (resNext.next != null){resNext = resNext.next;}
resNext.next = cur;
return res;
}
}
主要使用递归来实现,首先记录当前链表的头节点,然后将next继续调用此反转的方法,直到最后一个节点,递归方法返回后,将当前节点设置在res的最后一个节点的next上,并将当前节点的next置空。自己的一个思路,不喜勿喷。

京公网安备 11010502036488号