0
点赞
收藏
分享

微信扫一扫

反转链表.力扣206

凌得涂 2022-04-08 阅读 50

一、题目描述

二、思路

         我们要将链表有1 -> 2 -> 3 -> 4 反转为 1 <- 2 <- 3 <- 4,在遍历链表时,将当前节点的 next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。(最好自己画图走一遍,思路更清晰)

三、代码实现

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        //用来保存先前节点
        ListNode pre = null;
        //临时变量
        ListNode next = head;
        while(head != null){
            next = head.next;
            head.next = pre;
            pre = head;
            head = next;
        }
        return pre;
    }
}
举报

相关推荐

0 条评论