91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java鏈表類的反轉操作如何實現

小樊
82
2024-09-28 17:58:38
欄目: 編程語言

在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; // 返回反轉后的鏈表頭節點
}

這兩種方法都可以實現鏈表的反轉操作,你可以根據自己的需求和喜好選擇合適的方法。

0
泗阳县| 洪泽县| 鄂伦春自治旗| 丹巴县| 安乡县| 沂源县| 治多县| 大新县| 清河县| 鱼台县| 嘉兴市| 汝州市| 宜阳县| 宁陵县| 越西县| 门源| 阳春市| 清涧县| 安龙县| 钟山县| 邻水| 望江县| 中阳县| 安图县| 盐津县| 杭锦后旗| 武安市| 日土县| 绥滨县| 伊宁县| 五莲县| 西乡县| 勃利县| 田东县| 青海省| 雷波县| 岳普湖县| 庄河市| 高要市| 谷城县| 通许县|