力扣 简单 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;
    }
}
相关推荐
Bunny021222 分钟前
SpringMVC笔记
java·redis·笔记
feng_blog66881 小时前
【docker-1】快速入门docker
java·docker·eureka
Amd7941 小时前
深入探讨索引的创建与删除:提升数据库查询效率的关键技术
数据结构·sql·数据库管理·索引·性能提升·查询优化·数据检索
枫叶落雨2222 小时前
04JavaWeb——Maven-SpringBootWeb入门
java·maven
m0_748232393 小时前
SpringMVC新版本踩坑[已解决]
java
XianxinMao3 小时前
RLHF技术应用探析:从安全任务到高阶能力提升
人工智能·python·算法
码农小灰3 小时前
Spring MVC中HandlerInterceptor和Filter的区别
java·spring·mvc
hefaxiang3 小时前
【C++】函数重载
开发语言·c++·算法
乔木剑衣3 小时前
Java集合学习:HashMap的原理
java·学习·哈希算法·集合
exp_add33 小时前
Codeforces Round 1000 (Div. 2) A-C
c++·算法