输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
public ListNode reverseList(ListNode head) {
ListNode cur = head, pre = null;
while(cur != null) {
ListNode tmp = cur.next; // 临时存放cur.next
cur.next = pre;
pre = cur;
cur = tmp;
}
return pre;
}
public ListNode reverseList(ListNode head) {
return recur(head, null);
}
private ListNode recur(ListNode cur, ListNode pre) {
if (cur == null) return pre;
ListNode res = recur(cur.next, cur); //递归调用
cur.next = pre; // 修改节点引用指向
return res;
}
反转链表反转链表反转链表