力扣 简单 206.反转链表

文章目录

题目介绍

题解

法一:双指针
在遍历链表时,将当前节点的 next 改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。

代码如下:

java 复制代码
class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode pre = null, cur = head;
        while (cur != null) {
            ListNode nxt = cur.next;
            cur.next = pre;
            pre = cur;
            cur = nxt;
        }
        return pre;
    }
}

法二:递归

java 复制代码
/**
 * 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) {
        if (head == null || head.next == null) {
            return head;
        }
        ListNode newHead = reverseList(head.next);
        head.next.next = head;
        head.next = null;
        return newHead;
    }
}
相关推荐
leing1236 分钟前
14. 最长公共前缀-leetcode
linux·服务器·leetcode
梓德原7 分钟前
【C语言】C语言如何向系统接要存
java·c语言·算法
WX-bisheyuange10 分钟前
基于Spring Boot的流浪动物管理系统
java·spring boot·后端
阿蔹10 分钟前
Selenium---控制窗口、manage()方法
java·selenium·测试工具·面试
却话巴山夜雨时i12 分钟前
84. 柱状图中最大的矩形【困难】
算法
学困昇13 分钟前
Linux基础开发工具(上):从包管理到“进度条”项目实战,掌握 yum/vim/gcc 核心工具
linux·运维·开发语言·数据结构·c++·vim
浅川.2515 分钟前
xtuoj Interprime
算法
兩尛16 分钟前
HJ52 计算字符串的编辑距离
java·开发语言·算法
cici1587416 分钟前
基于LCMV的自适应波束形成算法仿真实现
算法
Mr-Wanter16 分钟前
底层架构设计浅解
java·分布式·微服务