溫馨提示×

java怎么實現單鏈表反轉

小億
107
2023-10-26 20:26:36
欄目: 編程語言

要實現單鏈表的反轉,可以使用迭代或遞歸兩種方法。

  1. 迭代法:
public ListNode reverseList(ListNode head) {
    ListNode prev = null; // 用于存儲反轉后的鏈表
    ListNode curr = head; // 當前節點
    while (curr != null) {
        ListNode nextTemp = curr.next; // 保存下一個節點
        curr.next = prev; // 將當前節點的next指向前一個節點,實現反轉
        prev = curr; // 將prev指向當前節點,為下一次迭代做準備
        curr = nextTemp; // 將當前節點指向下一個節點,進行下一次迭代
    }
    return prev; // 返回反轉后的鏈表的頭節點
}
  1. 遞歸法:
public ListNode reverseList(ListNode head) {
    if (head == null || head.next == null) {
        return head; // 如果鏈表為空或只有一個節點,則直接返回
    }
    ListNode p = reverseList(head.next); // 遞歸反轉除第一個節點以外的鏈表
    head.next.next = head; // 將第一個節點的next的next指向第一個節點,實現反轉
    head.next = null; // 將第一個節點的next指向null,防止形成環
    return p; // 返回反轉后的鏈表的頭節點
}

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女