Base case: List with one element returns that element. Recursive case: Compare first element with max of rest. python def find_max(lst): if len(lst) == 1: return lst[0] rest_max = find_max(lst[1:]) if lst[0] > rest_max: return lst[0] return rest_max Tracing find_max([3, 1, 4]): ```plaintext find_max([3, 1, 4]) → rest_max = find_max([1, 4]) → rest_max = find_max([4]) → return 4 (base case) → compare 1 > 4?
No → return 4 → compare 3 > 4? No → return 4 ``` Result: Each level compares one element against the best found in the rest.