Java版《奇偶链表》
链表的奇偶重排
http://www.nowcoder.com/questionTerminal/02bf49ea45cd486daa031614f9bd6fc3
维护两个指针,一个指向奇数链表的头,一个指向偶数链表的头
先将链表分为奇数链表和偶数链表,然后再进行合并。
奇数位置的后面必定是偶数,偶数位置后面必定是奇数,利用这个特点即可解决这道题目~
public ListNode oddEvenList (ListNode head) {
if (head == null || head.next == null)
return head;
ListNode odd = head;
ListNode oddHead = head;
ListNode even = head.next;
ListNode evenHead = head.next;
while (even != null && even.next != null){
odd.next = even.next;
odd = odd.next;
even.next = odd.next;
even = even.next;
}
odd.next = evenHead;
return oddHead;
}
CS-Review 文章被收录于专栏
本专栏记录本人维护的仓库( cs-review.cn )分类刷题解法~
查看9道真题和解析