Loading

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;
    }
}
posted @ 2020-10-24 11:14  上海井盖王  阅读(121)  评论(0)    收藏  举报