Iterators and Generators: Difficult

code writing

Write a generator function that goes through a tree and yields all of the paths in the tree where the leaf value in the path is equal to val, where each path is represented as a linked list.
def tree_gen(t, val):
>> t = Tree(1, [Tree(2, [Tree(3)]), Tree(7), Tree(3)])
>>> list(tree_gen(t, 3))
[Link(1, Link(2, Link(3))), Link(1, Link(3))]
    if ________:
    for branch in t.branches:

Write a generator function that yields the elements in a list in order from greatest to least. You can assume there is at least one element in the list, and that all elements are unique.
def sort_list_gen(lst):
>> lst = [8, 1, 5, 7]
>>> gen = sort_list_gen(lst)
>>> list(gen)
[8, 7, 5, 1]