成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

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

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

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

編寫鏈表節(jié)點(diǎn)類

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

```java

public class ListNode {

int val;

ListNode next;

public ListNode(int val) {

val;

null;

}

}

```

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

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

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

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

3. 將通過節(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)為字符串

為了方便測試程序,我們還需要編寫一個(gè)函數(shù),可以將一條單向無環(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 ();

}

```

本地測試主方法

我們還需要編寫一個(gè)本地測試方法,來驗(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));

}

```

觀察輸出結(jié)果

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

提交算法

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

標(biāo)簽: