24. 反转链表
思路:三指针
pre、cur、curNext
- 初始化:
- 第一个节点指向 null
- cur.next 指向 pre
- 挪动 +cur.next 指向 pre
- 直到 curNext 是空 + 还须要一次 cur.next 指向 pre,返回 cur
- 或者直到 cur 是空,返回 pre
操作:
思路:递归
- 返回条件:head==null||head.next==null
- 递归体:
cur 的下一个节点的 next 指针指向 cur
cur 的 next 指针指向 null
操作:
public ListNode reverseList(ListNode head) {if (head==null||head.next==null) return head;
ListNode newhead = reverseList(head.next);
head.next.next = head;
head.next = null;
return newhead;
}