minimanimoh / Udacity_DS-A

0 stars 0 forks source link

DS&A - 2. Data Structures - Lesson 1. Even After Odd #12

Open minimanimoh opened 3 years ago

minimanimoh commented 3 years ago

Problem Statement

Given a linked list with integer data, arrange the elements in such a manner that all nodes with even numbers are placed after odd numbers. Do not create any new nodes and avoid using any other data structure. The relative order of even and odd elements must not change.

Example:

def even_after_odd(head):

    if head is None:
        return head

    even = None
    odd = None
    even_tail = None
    head_tail = None

    while head:
        next_node = head.next

        if head.data % 2 == 0:
            if even is None:
                even = head
                even_tail = even
            else:
                even_tail.next = head
                even_tail = even_tail.next
        else:
            if odd is None:
                odd = head
                odd_tail = odd
            else:
                odd_tail.next = head
                odd_tail = odd_tail.next
        head.next = None
        head = next_node

    if odd is None:
        return even
    odd_tail.next = even
    return odd
minimanimoh commented 3 years ago

CC7645AC-2464-468B-90AA-63EA2D4C5352

minimanimoh commented 3 years ago

왜 맨 마지막에 odd is None 일 때를 추가해주나요? else 문에서 추가해줬는데...