Ich versuche, eine Funktion zu erstellen, die max von der verschachtelten Liste zurückgibt?

Ich habe das geschrieben und es funktioniert gut mit allem, aber wenn ich eine leere Liste in einer gegebenen Liste habe given_list=[[],1,2,3]) Index liegt außerhalb des zulässigen Bereichs. Irgendeine Hilfe

def r_max (given_list):
    largest = given_list[0]
    while type(largest) == type([]):
        largest = largest[0]

    for element in given_list:
        if type(element) == type([]):
            max_of_elem = r_max(element)
            if largest < max_of_elem:
                largest = max_of_elem
        else:                           # element is not a list
            if largest < element:
                largest = element

    return largest