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

Java詳解如何將一條單向鏈表按節(jié)點(diǎn)奇偶位置分解

給定一個(gè)單向無(wú)環(huán)鏈表,實(shí)現(xiàn)一個(gè)算法,按照鏈表節(jié)點(diǎn)奇偶位置分解為兩條鏈表,鏈接為一條鏈表后返回。編寫(xiě)鏈表節(jié)點(diǎn)類(lèi)我們首先需要編寫(xiě)一個(gè)靜態(tài)內(nèi)部類(lèi)來(lái)代表鏈表的節(jié)點(diǎn)。這個(gè)節(jié)點(diǎn)類(lèi)包含一個(gè)值屬性和一個(gè)指向下一個(gè)節(jié)點(diǎn)

給定一個(gè)單向無(wú)環(huán)鏈表,實(shí)現(xiàn)一個(gè)算法,按照鏈表節(jié)點(diǎn)奇偶位置分解為兩條鏈表,鏈接為一條鏈表后返回。

編寫(xiě)鏈表節(jié)點(diǎn)類(lèi)

我們首先需要編寫(xiě)一個(gè)靜態(tài)內(nèi)部類(lèi)來(lái)代表鏈表的節(jié)點(diǎn)。這個(gè)節(jié)點(diǎn)類(lèi)包含一個(gè)值屬性和一個(gè)指向下一個(gè)節(jié)點(diǎn)的引用。

```java

public class ListNode {

int val;

ListNode next;

public ListNode(int val) {

val;

null;

}

}

```

實(shí)現(xiàn)算法

下面我們來(lái)實(shí)現(xiàn)按照奇偶位置分解鏈表的算法。具體步驟如下:

1. 創(chuàng)建兩個(gè)空節(jié)點(diǎn),作為原鏈表奇偶位置子鏈表的頭節(jié)點(diǎn)。

2. 遍歷原始鏈表,將節(jié)點(diǎn)按照奇偶位置分解并鏈接起來(lái)。

3. 將通過(guò)節(jié)點(diǎn)奇偶位置構(gòu)建的子鏈表鏈接為一條鏈表并返回。

```java

public ListNode splitListByOddEven(ListNode head) {

if (head null || null) {

return head;

}

ListNode oddHead new ListNode(0);

ListNode evenHead new ListNode(0);

ListNode odd oddHead;

ListNode even evenHead;

ListNode curr head;

boolean isOdd true;

while (curr ! null) {

if (isOdd) {

curr;

odd ;

} else {

curr;

even ;

}

curr ;

isOdd !isOdd;

}

;

null;

return ;

}

```

輔助函數(shù):將鏈表轉(zhuǎn)為字符串

為了方便測(cè)試程序,我們還需要編寫(xiě)一個(gè)函數(shù),可以將一條單向無(wú)環(huán)鏈表轉(zhuǎn)變?yōu)橐粋€(gè)字符串,便于輸出鏈表。

```java

public String convertToString(ListNode head) {

StringBuilder sb new StringBuilder();

ListNode curr head;

while (curr ! null) {

().append(" -> ");

curr ;

}

("null");

return ();

}

```

本地測(cè)試主方法

我們還需要編寫(xiě)一個(gè)本地測(cè)試方法,來(lái)驗(yàn)證我們的算法是否正確。

```java

public static void main(String[] args) {

Solution solution new Solution();

// 創(chuàng)建鏈表 1 -> 2 -> 3 -> 4 -> 5

ListNode head new ListNode(1);

ListNode node2 new ListNode(2);

ListNode node3 new ListNode(3);

ListNode node4 new ListNode(4);

ListNode node5 new ListNode(5);

node2;

node3;

node4;

node5;

("原鏈表:" (head));

ListNode result solution.splitListByOddEven(head);

("奇偶位置分解后的鏈表:" (result));

}

```

觀(guān)察輸出結(jié)果

運(yùn)行本地測(cè)試方法,觀(guān)察控制臺(tái)輸出,確保輸出符合預(yù)期。

提交算法

經(jīng)過(guò)本地測(cè)試驗(yàn)證,我們可以將算法提交到目標(biāo)平臺(tái)進(jìn)行測(cè)試。

標(biāo)簽: