java单链表反转代码怎么写

avatar
作者
猴君
阅读量: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方法来反转链表。反转过程中,我们使用了三个指针prevcurrnext,分别表示当前节点的前一个节点、当前节点和当前节点的下一个节点。我们通过依次修改节点的next指针,使得每个节点指向它的前一个节点,从而实现链表的反转。

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!