Java实现链表奇偶位置节点分开为两个链表
首先,我们需要声明一个链表节点类,用于构建一条链表。这个节点类包含两个属性:节点的值和下一个节点的引用。
```java
public class ListNode {
int val;
ListNode next;
public ListNode(int val) {
val;
}
}
```
接下来,我们需要实现一个算法,将给定链表中的奇数位置节点和偶数位置节点分开,并连接成两个子链表,最后将两个子链表连接起来返回。
```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;
}
}
```
然后,我们还需要编写一个方法来输出一个链表的结构,方便测试结果。
```java
public class Solution {
// ...
public void printList(ListNode head) {
ListNode current head;
while (current ! null) {
( " ");
current ;
}
();
}
}
```
现在,我们可以构建一条链表作为测试用例,先输出链表的结构,然后调用上述方法处理链表,将结果再次输出。
```java
public class Main {
public static void main(String[] args) {
Solution solution new Solution();
// 构建测试用例链表 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);
}
}
```
运行测试方法,观察输出结果是否符合预期。
最后,在合适的平台上提交我们的算法代码,并进行测试通过。
这样,我们就成功实现了Java中将链表奇偶位置节点分开为两个链表的算法。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。