summaryrefslogtreecommitdiff
path: root/2020
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-08-15 11:15:54 -0600
committermo khan <mo.khan@gmail.com>2020-08-15 11:15:54 -0600
commit660e35aab83a1d8c2a3652047555cc938e643f84 (patch)
tree18c73e0294f08c517e84d88b3eafba36945ab451 /2020
parente8104bc6f725b2d4ac22bea364fdaf9872104479 (diff)
Implement a recursive solution
Diffstat (limited to '2020')
-rw-r--r--2020/08/15/main.rb25
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