美文网首页面试精选
LeetCode刷题分类之双指针206.反转链表

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

作者: 逍遥白亦 | 来源:发表于2021-03-15 21:15 被阅读0次

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;
    }
}

相关文章

网友评论

    本文标题:LeetCode刷题分类之双指针206.反转链表

    本文链接:https://www.haomeiwen.com/subject/ceelcltx.html