206. [链表][双指针]反转链表
206. 反转链表
方法一:双指针
- 定义两个指针:\(prev\)和\(curr\);\(curr\)在前,\(prev\)在后。
- 每次让\(curr\)的\(next\)指向\(curr\),实现一次局部反转。
- 局部反转完成之后,\(prev\)和\(curr\)同时往前移动一个位置。
- 循环上述过程,直至\(curr\)到达链表尾部。
class Solution {
public ListNode reverseList(ListNode head) {
ListNode curr = head, prev = null;
while (curr != null) {
ListNode nextTemp = curr.next;
curr.next = prev;
prev = curr;
curr = nextTemp;
}
return prev;
}
}

浙公网安备 33010602011771号