Linked List Recursion Example
This code shows a function that sums up the elements of a linked list using recursion.
At the current step, the program is about to return from the base case of the recursion, which returns 0 to its caller.

1def listSum(numbers):
2  if not numbers:
3    return 0
4  else:
5    (f, rest) = numbers
6    return f + listSum(rest)
7
8myList = (1, (2, (3, None)))
9total = listSum(myList)
Step 15 of 18
line that has just executed

next line to execute

Program output:
Frames
Global variables
listSum
 
myList
 
listSum
numbers
 
f1
rest
 
listSum
numbers
 
f2
rest
 
listSum
numbers
 
f3
restNone
listSum
numbersNone
Return
value
0
Objects
function listSum(numbers)
tuple
01
1
 
tuple
01
2
 
tuple
01
3None