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

溫馨提示×

java怎么刪除單鏈表的重復節點

小億
92
2023-12-15 02:55:56
欄目: 編程語言

可以使用兩個指針來遍歷單鏈表并刪除重復節點。具體步驟如下:

  1. 定義兩個指針,currnext,初始化時都指向鏈表的頭節點。
  2. 使用一個HashSet保存已經出現過的節點的值,初始時為空。
  3. 遍歷鏈表,當curr不為空時執行以下步驟:
    • 如果curr的值已經存在于HashSet中,說明當前節點是重復的,將next節點的值賦給curr節點,然后將next節點指向下一個節點。
    • 如果curr的值不存在于HashSet中,將curr的值添加到HashSet中,并將curr節點指向next節點,然后將next節點指向下一個節點。
  4. 返回鏈表的頭節點。

下面是一個示例的Java代碼實現:

public ListNode deleteDuplicates(ListNode head) {
    if (head == null) {
        return null;
    }

    ListNode curr = head;
    ListNode next = head.next;
    Set<Integer> set = new HashSet<>();

    set.add(curr.val);

    while (next != null) {
        if (set.contains(next.val)) {
            curr.val = next.val;
            curr.next = next.next;
        } else {
            set.add(next.val);
            curr = curr.next;
        }
        next = next.next;
    }

    return head;
}

請注意,此代碼假設ListNode類的定義如下:

public class ListNode {
    int val;
    ListNode next;

    ListNode(int val) {
        this.val = val;
    }
}

0
吉隆县| 吴川市| 雅江县| 榆树市| 张家港市| 五家渠市| 镇巴县| 崇文区| 兴宁市| 文水县| 舞钢市| 肃宁县| 伊通| 上饶县| 东乌珠穆沁旗| 高台县| 宝应县| 邵阳市| 垫江县| 双桥区| 胶州市| 科尔| 新巴尔虎右旗| 安乡县| 凤山县| 吉首市| 曲周县| 北宁市| 三穗县| 东乡县| 郑州市| 棋牌| 乐清市| 汝城县| 大同市| 郁南县| 宜宾县| 肃宁县| 金寨县| 南部县| 曲阳县|