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

溫馨提示×

java單鏈表怎么刪除某個節點

小億
91
2024-01-27 14:25:55
欄目: 編程語言

要刪除單鏈表中的某個節點,可以按照以下步驟進行操作:

  1. 首先判斷要刪除的節點是否是頭節點。如果是頭節點,直接將頭指針指向下一個節點即可。
  2. 如果要刪除的節點不是頭節點,需要先找到要刪除節點的前一個節點。
  3. 將前一個節點的next指針指向要刪除節點的下一個節點,跳過要刪除的節點。
  4. 釋放要刪除的節點的內存空間,完成刪除操作。

以下是一個示例代碼:

public class ListNode {
    int val;
    ListNode next;
    ListNode(int x) { val = x; }
}

public class LinkedList {
    private ListNode head;

    public void deleteNode(int val) {
        ListNode current = head;
        ListNode previous = null;

        // 遍歷鏈表找到要刪除的節點和其前一個節點
        while (current != null && current.val != val) {
            previous = current;
            current = current.next;
        }

        // 要刪除的節點是頭節點
        if (current == head) {
            head = head.next;
        }
        // 要刪除的節點不是頭節點
        else {
            previous.next = current.next;
        }

        // 釋放要刪除的節點的內存空間
        current = null;
    }
}

使用示例:

public class Main {
    public static void main(String[] args) {
        LinkedList list = new LinkedList();

        // 添加節點
        list.head = new ListNode(1);
        ListNode second = new ListNode(2);
        ListNode third = new ListNode(3);
        list.head.next = second;
        second.next = third;

        // 刪除節點
        list.deleteNode(2);

        // 打印鏈表
        ListNode current = list.head;
        while (current != null) {
            System.out.print(current.val + " ");
            current = current.next;
        }
    }
}

輸出結果為:1 3,表示成功刪除了值為2的節點。

0
宁陕县| 隆子县| 嘉峪关市| 榆树市| 页游| 日喀则市| 玉环县| 观塘区| 高阳县| 宁国市| 阿瓦提县| 浙江省| 宣汉县| 镇坪县| 抚宁县| 宁都县| 大悟县| 德庆县| 翁源县| 阿坝县| 汕尾市| 增城市| 芦溪县| 随州市| 滕州市| 封丘县| 馆陶县| 宣武区| 遂溪县| 海盐县| 沾益县| 东兰县| 南和县| 潮安县| 鲜城| 会东县| 阳曲县| 鲁山县| 和政县| 昆山市| 大邑县|