/*
剑指 Offer 24. 反转链表 easy
定义一个函数,输入一个链表的头节点,反转该le链表并输出反转后链表的头节点。*/
import java.util.List;
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
// 双指针迭代
class Solution24a {
public ListNode reverseList(ListNode head) {
ListNode cur=head;
ListNode pre=null;
while(cur!=null){
ListNode nxt=cur.next;
cur.next =pre;
pre=cur;
cur=nxt;
}
return pre;
}
}
// 递归
class Solution24b {
public ListNode reverseList(ListNode head) {
if (head==null||head.next==null)
return head;
ListNode node=reverseList(head.next);
head.next.next=head;
head.next=null;
return node;
}
}
day17:sword24
最新推荐文章于 2024-11-11 20:59:17 发布
本文介绍了如何使用双指针迭代和递归两种方法解决LeetCode题目24,即反转链表问题。通过实例代码展示了如何在Java中操作链表,包括创建ListNode类,以及如何利用迭代和递归思路来完成链表的反转。
摘要由CSDN通过智能技术生成