117.info
人生若只如初见

怎么用java递归实现单链表反转

使用递归来反转单链表需要使用两个指针,一个用来指向当前节点,另一个用来指向当前节点的前一个节点。递归的终止条件是当前节点为null,即已经反转到链表的尾部。

以下是使用递归实现单链表反转的Java代码:

class Node {
    int data;
    Node next;

    Node(int data) {
        this.data = https://www.yisu.com/ask/data;"hljs">int data) {
        Node newNode = new Node(data);

        if (head == null) {
            head = newNode;
        } else {
            Node currentNode = head;
            while (currentNode.next != null) {
                currentNode = currentNode.next;
            }
            currentNode.next = newNode;
        }
    }

    // 打印链表
    void printList(Node node) {
        while (node != null) {
            System.out.print(node.data + " ");
            node = node.next;
        }
    }

    public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.insert(1);
        list.insert(2);
        list.insert(3);
        list.insert(4);

        System.out.println("原始链表:");
        list.printList(list.head);

        // 反转链表
        list.head = list.reverse(list.head, null);

        System.out.println("\n反转后的链表:");
        list.printList(list.head);
    }
}

输出结果为:

原始链表: 1 2 3 4 反转后的链表: 4 3 2 1

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

推荐文章

  • JAVA的Collections类中shuffle的用法

    Collections类中的shuffle方法用于将指定的List按随机顺序重新排列。下面是shuffle方法的用法: 使用shuffle方法: List numbers = new ArrayList();
    numbe...

  • java中进行两个txt文本文档的数据对比,找不不相同的字

    可以使用Java的IO流和字符串处理来实现两个txt文本文档的数据对比,找出不相同的字。
    以下是一个简单的示例代码:
    import java.io.BufferedReader;

  • java.lang.abstractMethodError的错误解决

    java.lang.abstractMethodError是一个运行时错误,它发生在子类没有实现父类或接口的抽象方法的情况下。这个错误通常是由于类的版本不一致或类加载器加载了错误的...

  • java中 Scanner对象.nextInt() 方法什么意思

    Scanner对象的nextInt()方法是用来读取下一个整数输入的。
    它会等待用户输入一个整数,并将其作为方法的返回值返回。如果用户输入的不是一个有效的整数,ne...

  • docker怎么进入容器修改文件

    要进入Docker容器并修改文件,可以按照以下步骤操作: 使用docker ps命令获取正在运行的容器的列表,并找到要进入的容器的ID或名称。 运行以下命令进入容器:

  • linux的export命令有什么作用

    在Linux操作系统中,export命令用于设置环境变量。环境变量是一些系统级的变量,可以在用户会话期间被访问和使用。export命令的作用如下: 设置环境变量:使用ex...

  • seekp()和seekg()函数简单的应用

    seekp()和seekg()函数是C++中的流定位函数,用于在流中定位读写位置。
    seekp()函数用于定位输出流的写入位置,seekg()函数用于定位输入流的读取位置。

  • ubuntu vsftpd中上传文件报550的错误

    在Ubuntu vsftpd中上传文件报550错误通常表示权限问题。以下是一些常见的解决方法:1. 检查上传目录的权限:确保已经为上传目录设置了正确的权限。可以使用以下命...