java怎么实现单链表的反转

1243
2023/12/23 19:21:05
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

要实现单链表的反转,可以按照以下步骤进行:

  1. 创建一个新的链表,作为反转后的链表。
  2. 遍历原链表,将每个节点插入到新链表的头部。
  3. 返回新链表作为反转后的链表。

以下是用Java实现单链表反转的示例代码:

class ListNode {
    int val;
    ListNode next;

    ListNode(int val) {
        this.val = val;
        this.next = null;
    }
}

public class LinkedListReverse {
    public static ListNode reverse(ListNode head) {
        ListNode newHead = null;
        while (head != null) {
            ListNode nextNode = head.next;
            head.next = newHead;
            newHead = head;
            head = nextNode;
        }
        return newHead;
    }

    public static void main(String[] args) {
        // 创建一个示例链表 1->2->3->4->5
        ListNode head = new ListNode(1);
        ListNode second = new ListNode(2);
        ListNode third = new ListNode(3);
        ListNode fourth = new ListNode(4);
        ListNode fifth = new ListNode(5);

        head.next = second;
        second.next = third;
        third.next = fourth;
        fourth.next = fifth;

        // 反转链表
        ListNode newHead = reverse(head);

        // 打印反转后的链表值
        ListNode currentNode = newHead;
        while (currentNode != null) {
            System.out.print(currentNode.val + " ");
            currentNode = currentNode.next;
        }
        // 输出结果: 5 4 3 2 1
    }
}

在上述示例代码中,我们创建了一个单链表,并使用 reverse 方法将其反转。最后,我们遍历反转后的链表,并打印每个节点的值。输出结果为 5 4 3 2 1,表示链表已成功反转。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: java中map的存储结构有哪些选择