卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

Java如何刪除有序鏈表中有重復值的所有節(jié)點

1. 定義鏈表節(jié)點類首先,我們需要聲明一個內(nèi)部靜態(tài)類來表示鏈表節(jié)點。這個類將包含兩個屬性:節(jié)點的值和指向下一個節(jié)點的指針。```javastatic class ListNode { int

1. 定義鏈表節(jié)點類

首先,我們需要聲明一個內(nèi)部靜態(tài)類來表示鏈表節(jié)點。這個類將包含兩個屬性:節(jié)點的值和指向下一個節(jié)點的指針。

```java

static class ListNode {

int val;

ListNode next;

ListNode(int val) {

val;

}

}

```

2. 刪除重復節(jié)點的算法實現(xiàn)

接下來,我們需要實現(xiàn)一個算法來移除原始鏈表中所有包含重復值的節(jié)點,并構(gòu)建一個新的鏈表返回。在遍歷鏈表的過程中,我們使用兩個指針來判斷是否存在重復值,并進行節(jié)點的刪除操作。

```java

public static ListNode deleteDuplicates(ListNode head) {

if (head null || null) return head;

ListNode dummy new ListNode(-1);

head;

ListNode prev dummy;

while (head ! null) {

while ( ! null ) {

head ;

}

if ( head) {

prev ;

} else {

;

}

head ;

}

return ;

}

```

3. 將鏈表轉(zhuǎn)換為字符串的輔助方法

編寫一個輔助函數(shù),將一條鏈表結(jié)構(gòu)轉(zhuǎn)變?yōu)橐粋€字符串,以便于本地測試時觀察結(jié)果。

```java

public static String listNodeToString(ListNode node) {

StringBuilder builder new StringBuilder();

while (node ! null) {

().append(" ");

node ;

}

return ().trim();

}

```

4. 編寫本地測試主方法

為了驗證算法的正確性,我們需要編寫一個本地測試主方法,創(chuàng)建一個有序鏈表,并調(diào)用刪除重復節(jié)點的方法。

```java

public static void main(String[] args) {

ListNode head new ListNode(1);

new ListNode(2);

new ListNode(2);

new ListNode(3);

("Original List: " listNodeToString(head));

ListNode result deleteDuplicates(head);

("Modified List: " listNodeToString(result));

}

```

5. 運行本地測試并提交算法

運行本地測試主方法后,觀察控制臺輸出,確保算法符合預期。如果本地測試通過,即可將算法提交到相應平臺進行更多的測試和驗證。

通過以上步驟,我們成功實現(xiàn)了刪除有序鏈表中重復值節(jié)點的算法,并且保留了原始鏈表中沒有重復值的節(jié)點,同時也符合約束條件,不創(chuàng)建新的鏈表節(jié)點或修改原始鏈表節(jié)點的值。

標簽: