一:解题思路
Time:O(n),Space:O(1)
二:完整代码示例 (C++版和Java版)
C++:
class Solution { public: ListNode* oddEvenList(ListNode* head) { if (head == NULL || head->next == NULL || head->next->next == NULL) return head; ListNode* evenHead = head->next; ListNode* odd = head; ListNode* even = evenHead; 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; } };
Java:
class Solution { public ListNode oddEvenList(ListNode head) { if(head==null || head.next==null || head.next.next==null) return head; ListNode evenHead=head.next; ListNode odd=head; ListNode even=evenHead; 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; } }