When you think about such problems, itβs nice to get a pen and paper, draw something and think about it at a high level.
For instance, ...............
Enter
List: [3] - [2] - [5] level
Goal: 2
................
First call => Result
deleteAll(N[3], 2) => [3]
but next time deleteAll(N[2], 2)
List = [3]-deleteAll(N[2], 2)
Second challenge
deleteAll(N[2], 2) => deleteAll(N[5], 2)
next node now skips 2
List = [3]-deleteAll(N[5], 2)
Third challenge
deleteAll(N[5], 2) => [5]
but the next one is now deleteAll (null, 2)
List = [3]-[5]-deleteAll(null, 2)
Lat call returns null
List ends clean without 2s
List = [3]-[5]-null
source share