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

Java詳解如何從鏈表中刪除和值為0的連續(xù)節(jié)點(diǎn)

1. 構(gòu)建鏈表數(shù)據(jù)結(jié)構(gòu)為了實(shí)現(xiàn)從鏈表中刪除和值為0的連續(xù)節(jié)點(diǎn)的算法,首先需要構(gòu)建表示鏈表節(jié)點(diǎn)的靜態(tài)內(nèi)部類。這個(gè)類可以通過(guò)對(duì)象來(lái)構(gòu)建一條單向鏈表結(jié)構(gòu)。以下是示例代碼:```javapublic clas

1. 構(gòu)建鏈表數(shù)據(jù)結(jié)構(gòu)

為了實(shí)現(xiàn)從鏈表中刪除和值為0的連續(xù)節(jié)點(diǎn)的算法,首先需要構(gòu)建表示鏈表節(jié)點(diǎn)的靜態(tài)內(nèi)部類。這個(gè)類可以通過(guò)對(duì)象來(lái)構(gòu)建一條單向鏈表結(jié)構(gòu)。以下是示例代碼:

```java

public class LinkedListNode {

int value;

LinkedListNode next;

public LinkedListNode(int value) {

value;

null;

}

}

```

2. 實(shí)現(xiàn)刪除連續(xù)節(jié)點(diǎn)的算法

該算法的思想是,首先計(jì)算頭節(jié)點(diǎn)到各個(gè)節(jié)點(diǎn)的值的和,并將該和值和節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系放入哈希表中。如果一段連續(xù)節(jié)點(diǎn)的和為0,則該段前后兩個(gè)節(jié)點(diǎn)到頭節(jié)點(diǎn)的和一致。

然后再次計(jì)算頭節(jié)點(diǎn)到各個(gè)節(jié)點(diǎn)的值的和,并根據(jù)和值從哈希表中獲取節(jié)點(diǎn),并構(gòu)建結(jié)果鏈表。這樣就會(huì)跳過(guò)所有和值為0的連續(xù)節(jié)點(diǎn)段。以下是示例代碼:

```java

public static LinkedListNode deleteZeroSum(LinkedListNode head) {

Map map new HashMap<>();

int sum 0;

LinkedListNode curr head;

while (curr ! null) {

sum ;

map.put(sum, curr);

curr ;

}

sum 0;

curr head;

LinkedListNode dummy new LinkedListNode(0);

head;

LinkedListNode result dummy;

while (curr ! null) {

sum ;

if ((sum)) {

(sum).next;

}

curr ;

dummy ;

}

return ;

}

```

3. 轉(zhuǎn)換鏈表為字符串

為了便于在控制臺(tái)打印鏈表并進(jìn)行本地測(cè)試,我們可以編寫一個(gè)函數(shù),將一條單向無(wú)環(huán)鏈表轉(zhuǎn)換為一個(gè)字符串。以下是示例代碼:

```java

public static String convertToString(LinkedListNode head) {

StringBuilder sb new StringBuilder();

LinkedListNode curr head;

while (curr ! null) {

().append(" ");

curr ;

}

return ();

}

```

4. 編寫本地測(cè)試方法

為了驗(yàn)證算法的正確性,我們可以編寫一個(gè)本地測(cè)試方法。以下是示例代碼:

```java

public static void test() {

LinkedListNode head new LinkedListNode(3);

LinkedListNode node1 new LinkedListNode(2);

LinkedListNode node2 new LinkedListNode(-2);

LinkedListNode node3 new LinkedListNode(-3);

LinkedListNode node4 new LinkedListNode(1);

node1;

node2;

node3;

node4;

LinkedListNode result deleteZeroSum(head);

(convertToString(result));

}

```

5. 運(yùn)行本地測(cè)試方法

運(yùn)行本地測(cè)試方法,觀察控制臺(tái)輸出是否符合預(yù)期。如果輸出結(jié)果與預(yù)期相符,則說(shuō)明本地測(cè)試通過(guò)。

6. 提交算法并進(jìn)行平臺(tái)測(cè)試

將算法提交到相應(yīng)的平臺(tái)進(jìn)行測(cè)試。如果測(cè)試通過(guò),則說(shuō)明算法在實(shí)際使用中也能正常工作。

標(biāo)簽: