diff options
| author | mo khan <mo.khan@gmail.com> | 2020-08-15 11:15:54 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-08-15 11:15:54 -0600 |
| commit | 660e35aab83a1d8c2a3652047555cc938e643f84 (patch) | |
| tree | 18c73e0294f08c517e84d88b3eafba36945ab451 /2020 | |
| parent | e8104bc6f725b2d4ac22bea364fdaf9872104479 (diff) | |
Implement a recursive solution
Diffstat (limited to '2020')
| -rw-r--r-- | 2020/08/15/main.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/2020/08/15/main.rb b/2020/08/15/main.rb index 909c648..b743d3b 100644 --- a/2020/08/15/main.rb +++ b/2020/08/15/main.rb @@ -49,6 +49,31 @@ class Solution c.next = n end end + +=begin + + p + c + n + t +[(nil)<-(4)<-(3)<-(2)->(1)->(0)->(nil)] + + +=end + def self.swap(c, n, p) + return if c.nil? + + t = n&.next + c.next = p + n&.next = c + swap(n, t, c) + end + + # time: O(n) + # space: O(n) + def self.run(head) + swap(head, head.next, nil) + end end =begin |
