0 – found -1 – delete next
(head *ListNode, n int)
| 20 | // 0 – found |
| 21 | // -1 – delete next |
| 22 | func recursiveBackCounterDelete(head *ListNode, n int) int { |
| 23 | if head == nil { |
| 24 | return 1 |
| 25 | } |
| 26 | ret := recursiveBackCounterDelete(head.Next, n) |
| 27 | if ret == 0 { |
| 28 | return 0 |
| 29 | } |
| 30 | if ret == -1 { |
| 31 | head.Next = head.Next.Next |
| 32 | return 0 |
| 33 | } |
| 34 | if ret == n { |
| 35 | return -1 |
| 36 | } |
| 37 | return ret++ |
| 38 | } |
| 39 |