117.info
人生若只如初见

java单链表反转代码怎么写

以下是一个示例的Java单链表反转代码:

class ListNode {
    int val;
    ListNode next;

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

public class LinkedListReverse {
    public static ListNode reverse(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }

        ListNode prev = null;
        ListNode curr = head;
        ListNode next = null;

        while (curr != null) {
            next = curr.next;
            curr.next = prev;
            prev = curr;
            curr = next;
        }

        return prev;
    }

    public static void printList(ListNode head) {
        ListNode curr = head;
        while (curr != null) {
            System.out.print(curr.val + " ");
            curr = curr.next;
        }
        System.out.println();
    }

    public static void main(String[] args) {
        ListNode head = new ListNode(1);
        ListNode second = new ListNode(2);
        ListNode third = new ListNode(3);
        ListNode fourth = new ListNode(4);

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

        System.out.println("Original List:");
        printList(head);

        ListNode reversedHead = reverse(head);

        System.out.println("Reversed List:");
        printList(reversedHead);
    }
}

这个示例中,我们定义了一个ListNode类来表示链表中的节点。然后在LinkedListReverse类中,我们实现了一个reverse方法来反转链表。反转过程中,我们使用了三个指针prevcurrnext,分别表示当前节点的前一个节点、当前节点和当前节点的下一个节点。我们通过依次修改节点的next指针,使得每个节点指向它的前一个节点,从而实现链表的反转。

main方法中,我们创建了一个简单的链表,并调用reverse方法来反转链表。最后,我们使用printList方法来打印反转后的链表。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fefd8AzsLAwNWBFE.html

推荐文章

  • java中异常类会影响性能吗

    在Java中,异常类本身不会对性能产生显著影响。异常处理机制是为了在程序运行时处理错误或异常情况,而不是为了优化性能。然而,在使用异常时,需要注意以下几点...

  • java中异常类如何避免

    在Java中,避免异常的最好方法是编写健壮的代码并遵循一些最佳实践。以下是一些建议: 预期和处理异常:使用try-catch语句来捕获和处理可能发生的异常。确保处理...

  • java中异常类有哪些常见类型

    Java中的异常类主要分为两大类:受检异常(Checked Exceptions)和非受检异常(Unchecked Exceptions)。以下是具体的异常类型:
    受检异常(Checked Except...

  • java中异常类怎么捕获

    在Java中,我们使用try-catch语句来捕获异常。当程序执行过程中遇到异常时,Java运行时系统会抛出一个异常对象。你可以使用try块来包含可能引发异常的代码,然后...

  • c语言怎么实现单链表反转

    要实现单链表的反转,可以按照以下步骤进行: 定义一个指针变量current,指向链表的头节点。
    定义两个指针变量prev和next,分别表示当前节点的前一个节点和...

  • debian怎么开启ssh服务

    要在Debian中启用SSH服务,请按照以下步骤操作: 打开终端,以root用户身份登录。
    安装OpenSSH服务器软件包(如果尚未安装)。运行以下命令:apt-get updat...

  • c语言自旋锁实现的原理是什么

    C语言自旋锁的实现原理是通过循环检查锁的状态来实现的。当一个线程想要获得自旋锁时,它会不断地尝试获取锁,直到成功为止。
    具体而言,实现自旋锁通常会使...

  • vb设置定时器的步骤是什么

    设置定时器的步骤如下: 在代码中引入 System.Timers 命名空间。
    创建一个 Timer 对象。
    设置 Timer 的 Interval 属性,表示定时器触发的时间间隔。