java链表类的反转操作如何实现

avatar
作者
筋斗云
阅读量:0

在Java中,可以使用迭代或递归的方法来实现链表的反转操作。这里分别给出两种方法的实现:

  1. 迭代方法:
public class ListNode {     int val;     ListNode next;     ListNode(int x) { val = x; } }  public ListNode reverseList(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; // 当current为null时,prev即为反转后的链表头节点 } 
  1. 递归方法:
public class ListNode {     int val;     ListNode next;     ListNode(int x) { val = x; } }  public ListNode reverseList(ListNode head) {     if (head == null || head.next == null) {         return head;     }      ListNode newHead = reverseList(head.next); // 递归反转从head的下一个节点开始的链表     head.next.next = head; // 将原链表的第二个节点指向第一个节点     head.next = null; // 将原链表的第一个节点的下一个节点置为null      return newHead; // 返回反转后的链表头节点 } 

这两种方法都可以实现链表的反转操作,你可以根据自己的需求和喜好选择合适的方法。

广告一刻

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