给你单链表的头节点 head
,请你反转链表,并返回反转后的链表。
输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]
class Solution {
public ListNode reverseList(ListNode head) {
if (head == null)return null;
ListNode prev = null;
ListNode cur = head;
while (cur != null){
ListNode curNext = cur.next;//每次重置curNext。防止curNext空指针异常,
cur.next = prev;
prev = cur;
cur = curNext;
}
return prev;
}
}
思路:1、设置三个引用,pre、cur、curNext
2、cur先改当前节点的next引用
3、在将pre改到当前节点,把cur改到下一个节点
4、还有其他写法,但要注意,cur为空之后,就不能让curNext = cur.next