题目地址:https://leetcode.cn/problems/reverse-linked-list/
思路:引入三个指针,pre、cur和next,pre初始化为null,cur初始化为head。遍历链表,每次执行以下几步操作:
- 设置next=cur.next
- 将cur的next指向pre
- pre前进一步
- cur前进一步
直到cur为null,此时pre节点就是链表反转后的头节点。代码如下:
class Solution {
public ListNode reverseList(ListNode head) {
ListNode pre = null;
ListNode cur = head;
while(cur != null) {
ListNode next = cur.next;
cur.next = pre;
pre = cur;
cur = next;
}
return pre;
}
}