迭代实现
pre指针为head前面的一个空指针。
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
//将原来下一个节点保存在临时变量
ListNode next = curr.next;
//反转
curr.next = prev;
prev = curr;
curr = next;
}
return prev;
}
递归实现
public ListNode reverseList(ListNode head) {
// 1. 递归终止条件
if (head == null || head.next == null) {
return head;
}
ListNode p = reverseList(head.next);
head.next.next = head;
head.next = null;
return p;
}