Java實現(xiàn)鏈表奇偶位置節(jié)點分開為兩個鏈表
首先,我們需要聲明一個鏈表節(jié)點類,用于構(gòu)建一條鏈表。這個節(jié)點類包含兩個屬性:節(jié)點的值和下一個節(jié)點的引用。```javapublic class ListNode { int val; Li
首先,我們需要聲明一個鏈表節(jié)點類,用于構(gòu)建一條鏈表。這個節(jié)點類包含兩個屬性:節(jié)點的值和下一個節(jié)點的引用。
```java
public class ListNode {
int val;
ListNode next;
public ListNode(int val) {
val;
}
}
```
接下來,我們需要實現(xiàn)一個算法,將給定鏈表中的奇數(shù)位置節(jié)點和偶數(shù)位置節(jié)點分開,并連接成兩個子鏈表,最后將兩個子鏈表連接起來返回。
```java
public class Solution {
public ListNode separateOddEvenNodes(ListNode head) {
if (head null || null) {
return head;
}
ListNode oddHead head;
ListNode evenHead ;
ListNode odd oddHead;
ListNode even evenHead;
while (even ! null ! null) {
;
odd ;
;
even ;
}
evenHead;
return oddHead;
}
}
```
然后,我們還需要編寫一個方法來輸出一個鏈表的結(jié)構(gòu),方便測試結(jié)果。
```java
public class Solution {
// ...
public void printList(ListNode head) {
ListNode current head;
while (current ! null) {
( " ");
current ;
}
();
}
}
```
現(xiàn)在,我們可以構(gòu)建一條鏈表作為測試用例,先輸出鏈表的結(jié)構(gòu),然后調(diào)用上述方法處理鏈表,將結(jié)果再次輸出。
```java
public class Main {
public static void main(String[] args) {
Solution solution new Solution();
// 構(gòu)建測試用例鏈表 1->2->3->4->5
ListNode head new ListNode(1);
new ListNode(2);
new ListNode(3);
new ListNode(4);
new ListNode(5);
("原始鏈表:");
(head);
ListNode result (head);
("處理后的鏈表:");
(result);
}
}
```
運行測試方法,觀察輸出結(jié)果是否符合預(yù)期。
最后,在合適的平臺上提交我們的算法代碼,并進(jìn)行測試通過。
這樣,我們就成功實現(xiàn)了Java中將鏈表奇偶位置節(jié)點分開為兩個鏈表的算法。