可以使用递归或迭代的方式来实现反转链表。 递归方式: class Listnode { int val; ListN
递归方式:
class Listnode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
}
}
public class Solution {
public ListNode reverseList(ListNode head) {
// 如果链表为空或只有一个节点,无需反转,直接返回原链表头节点
if (head == null || head.next == null) {
return head;
}
ListNode newHead = reverseList(head.next); // 反转以head.next为头节点的子链表
head.next.next = head; // 将head节点连接到反转后的子链表的尾部
head.next = null; // 将head节点的next置为null
return newHead; // 返回新的头节点
}
}
迭代方式:
class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
}
}
public class Solution {
public ListNode reverseList(ListNode head) {
// 如果链表为空或只有一个节点,无需反转,直接返回原链表头节点
if (head == null || head.next == null) {
return head;
}
ListNode prev = null; // 当前节点的前一个节点
ListNode curr = head; // 当前节点
while (curr != null) {
ListNode next = curr.next; // 当前节点的下一个节点
curr.next = prev; // 反转指针指向前一个节点
prev = curr; // 更新当前节点的前一个节点
curr = next; // 更新当前节点为下一个节点
}
return prev; // 返回新的头节点
}
}
以上是两种常见的反转链表的实现方式。
--结束END--
本文标题: java如何实现反转列表
本文链接: https://www.lsjlt.com/news/436011.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-10
2024-05-10
2024-05-09
2024-05-09
2024-05-09
2024-05-09
2024-05-09
2024-05-09
2024-05-09
2024-05-09
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0