Evaluate a minimax tree
Python 2, 53 bytes
f=lambda l,c=1:c*l if l&lt;[]else-min(f(x,-c)for x in l)

The main question is how to alternate between max and min each layer. Using the fact that max(l) == -min([-x for x in l]), we instead negate every second layer and recurse with -min. To negate every second layer, we pass down a multiplier c that alternates +1 and -1, and when we reach a leaf, we adjust its value by the multiplier. We recognize being at a leaf via the condition l&lt;[], since Python 2 treats numbers as less than lists.
It's hard to shorten the else/if ternary because either branch could give a Truthy (nonzero) or Falsey (zero) value.