欢迎访问宙启技术站
智能推送

您知道如何使用Java函数实现链表的翻转吗?

发布时间:2023-06-29 18:29:34

在Java中,可以通过定义一个链表节点类来实现链表的翻转。首先,定义一个链表节点类,其中包含存储的数据和指向下一个节点的指针。然后,编写一个函数来将链表翻转。

以下是一个用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 prev = null;
        ListNode current = head;
        ListNode next = null;
        
        while (current != null) {
            next = current.next;
            current.next = prev;
            prev = current;
            current = next;
        }
        
        return prev;
    }
    
    // 测试翻转链表函数
    public static void main(String[] args) {
        // 创建链表
        ListNode head = new ListNode(1);
        ListNode node1 = new ListNode(2);
        ListNode node2 = new ListNode(3);
        ListNode node3 = new ListNode(4);
        
        head.next = node1;
        node1.next = node2;
        node2.next = node3;
        
        // 翻转链表
        ListNode reversedHead = reverse(head);
        
        // 打印翻转后的链表
        while (reversedHead != null) {
            System.out.print(reversedHead.val + " ");
            reversedHead = reversedHead.next;
        }
    }
}

在上面的例子中,首先创建了一个包含四个节点的链表。然后,调用reverse函数来翻转链表。翻转后的链表将从链表末尾开始打印,结果为4 3 2 1

reverse函数中的循环迭代了链表的每个节点,并将它们的指针翻转,使得指针从原来的下一个节点指向上一个节点。最后,返回链表的新头节点,即翻转后的链表。