本题主要解决将一个链表中的偶数节点全放在奇数节点之后,并返回头结点。
本题比较简单,新建一个odd节点,指向下一个奇数节点,even节点指向偶数节点,用节点evenhead记录偶数节点的头,当所有循环完成时,将最后一个奇数节点的next指向evenhead。
代码如下:
class Solution {
public ListNode oddEvenList(ListNode head) {
if(head ==null)
return head;
ListNode odd = head;
ListNode even = odd.next;
ListNode evenhead = even;
while(even!=null&&even.next!=null){
odd.next = odd.next.next;
even.next = even.next.next;
odd = odd.next;
even = even.next;
}
odd.next = evenhead;
return head;
}
}