0
点赞
收藏
分享

微信扫一扫

LeetCode刷题分类之双指针206.反转链表

天涯学馆 2021-09-21 阅读 70

206. 反转链表

题目

反转一个单链表。

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

思路

  1. 我们可以申请两个指针,第一个指针叫 pre,最初是指向 null 的。
  2. 第二个指针 cur 指向 head,然后不断遍历 cur。
  3. 每次迭代到 cur,都将 cur 的 next 指向 pre,然后 pre 和 cur 前进一位。
  4. 都迭代完了(cur 变成 null 了),pre 就是最后一个节点了。

代码

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode cur = head;
        while(cur != null){
            ListNode temp = cur.next;
            cur.next = prev;
            prev = cur;
            cur = temp;
        }
        return prev;
    }
}
举报

相关推荐

0 条评论