University of Arizona, Department of Computer Science

CSc 120: Diagonal to List (Recursive)

Expected Behavior

Write a recursive function diag2list_rec(grid), where grid is an n × n square list of lists, that returns a list consisting of the diagonal elements of grid, i.e., the elements grid[0][0], grid[1][1], ..., grid[n–1][n–1].

You can assume that grid is a square list of lists, i.e., you don't have to check for this.

You may find a helper function useful for this problem.

Programming Requirements

Solve this problem using recursion. You are allowed to use only the following programming constructs:

Solutions that go outside these constructs, e.g., by using for/while loops or list comprehensions, will not get credit.

Examples

  1. diag2list_rec([[1,2,3],[4,5,6],[7,8,9]])
    return value: [1,5,9]

  2. diag2list_rec([[1,2][3,4]])
    return value: [1,4]

  3. diag2list_rec([[1]])
    return value: [1]

  4. diag2list_rec([])
    return value: []