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;
}
发表回复