中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

java怎么實現單鏈表反轉

小億
91
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
甘德县| 长春市| 盐边县| 汶川县| 晋城| 黎川县| 海盐县| 龙岩市| 阳泉市| 澄城县| 台州市| 兰坪| 碌曲县| 独山县| 崇阳县| 剑阁县| 化州市| 云霄县| 出国| 靖宇县| 固始县| 永泰县| 车致| 新乡县| 壶关县| 孝昌县| 宜都市| 贵州省| 香格里拉县| 葵青区| 锡林浩特市| 微山县| 山东省| 宁安市| 海原县| 高清| 芒康县| 资兴市| 长丰县| 民乐县| 惠来县|