📜  反向链表的Java程序(1)

📅  最后修改于: 2023-12-03 14:50:32.914000             🧑  作者: Mango

反向链表的Java程序介绍

简介

反向链表是将普通单向链表倒过来,使得原来的尾结点变成头结点,头结点变成尾结点。在反向链表中,每个结点的指针都指向其前驱结点。

实现

下面是一个简单的Java程序,用于实现反向链表:

class ListNode {
    int val;
    ListNode next;
    ListNode(int x) { val = x; }
}

public class ReverseLinkedList {
    public ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode curr = head;

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

        return prev;
    }
}
原理

在反向链表中,我们首先需要将头结点的指针指向null,因为它将是新链表的尾结点。接着,我们需要用一个指针指向当前结点,并将当前结点的指针指向其前驱结点。最后,我们将前驱结点指针指向当前结点。重复这个过程直到当前结点为空。

总结

反向链表实现反向操作非常实用,因为它能够简单快速地实现链表中的反向操作。在Java程序中,我们可以遍历链表中的每个结点,并将其指针指向前驱结点。