LeetCode 剑指 Offer II 024. 反转链表
题目描述
给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。
示例 1:
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
链表中节点的数目范围是 [0, 5000]
-5000 <= Node.val <= 5000
一、解题关键词
二、解题报告
1.思路分析
2.时间复杂度
3.代码示例
/**
* 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 prev = null;
ListNode curr = head;
while(curr != null){
ListNode next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
return prev;
}
}
2.知识点
本文详细介绍了如何解决LeetCode上的剑指OfferII024题——反转链表。通过迭代法实现,首先初始化前驱节点为null,当前节点为头节点,然后在循环中不断更新节点的next指针,直至完成反转。时间复杂度为O(n),空间复杂度为O(1)。该题考察了链表操作的基本技巧,对于链表问题的理解和处理能力有很好的锻炼效果。

被折叠的 条评论
为什么被折叠?



