1. 奇偶链表
public class OddEvenList328 {
//定义一个单链表
public class ListNode {
int val; //当前节点值
ListNode next; //下一个节点值
//构造方法 初始化当前节点值
ListNode(int x) {
val = x;
next=null;
}
}
//奇偶链表 时间复杂度 O(n)
//用到了4个指针 奇数头指针head;奇数指针odd;偶数头指针evenHead;偶数指针even;
public ListNode oddEvenList(ListNode head) {
if (head == null) return null;
ListNode odd = head, even = head.next, evenHead = even;
while (even != null && even.next != null) {
odd.next = even.next;
odd = odd.next;
even.next = odd.next;
even = even.next;
}
odd.next = evenHead;
return head;
}
}
图解: