diff --git a/linked_lists/group_odd_and_even.py b/linked_lists/group_odd_and_even.py new file mode 100644 index 0000000..30542c9 --- /dev/null +++ b/linked_lists/group_odd_and_even.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# author: bt3gl + +class Node: + + def __init__(self, val): + self.val = val + self.next = None + + +def group_odd_and_even(head): + + if not head: + return None + + odd = head + even = odd.next + even_head = even + + while even is not None and even.next is not None: + + odd.next = even.next + odd = odd.next + even.next = odd.next + even = even.next + + odd.next = even_head + + return head +