euisblue
328. Odd Even Linked List

Ruby

1# Definition for singly-linked list. 2# class ListNode 3# attr_accessor :val, :next 4# def initialize(val = 0, _next = nil) 5# @val = val 6# @next = _next 7# end 8# end 9# @param {ListNode} head 10# @return {ListNode} 11def odd_even_list(head) 12 return head if !head or !head.next or !head.next.next 13 14 odd = head 15 even = head.next 16 temp = even 17 prev = nil 18 19 while odd && odd.next 20 odd.next = odd.next.next if odd && odd.next 21 prev = odd 22 odd = odd.next 23 temp.next = temp.next.next if temp && temp.next 24 temp = temp.next 25 end 26 27 if odd == nil 28 prev.next = even 29 else 30 odd.next = even 31 end 32 33 head 34end