# Lab Exercises Week 12

## Trees

### Ex 1:

Recall the notion of a *depth* of a tree that we discussed in the
lecture, which is the maximum distance between the *root* of a
tree and any of its leaves. Implement a polymorphic function
depthTree :: Tree a -> Int

which computes the depth of a tree. For example, we have

Tree> depthTree Leaf
0
Tree> depthTree (Node 1 Leaf Leaf )
1
Tree> depthTree (Node 2 Leaf (Node 3 Leaf Leaf))
2

**When you have completed the above exercises show them to your
tutor for this week's core mark.**

### Ex 2:

Implement a function `reverseTree:: Tree a -> Tree a` which
reverses the order of the elements in the tree by swaping the left and
the right subtree of each node.

4 4
/ \ / \
2 6 ===> 6 2
/ / \ / \ \
1 5 7 7 5 1

**When you have completed the above exercises show them to your
tutor for this week's advanced mark.**