阅读量:0
以下是一个示例的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
方法来反转链表。反转过程中,我们使用了三个指针prev
、curr
和next
,分别表示当前节点的前一个节点、当前节点和当前节点的下一个节点。我们通过依次修改节点的next
指针,使得每个节点指向它的前一个节点,从而实现链表的反转。
在main
方法中,我们创建了一个简单的链表,并调用reverse
方法来反转链表。最后,我们使用printList
方法来打印反转后的链表。