Commit 660e35a

mo khan <mo.khan@gmail.com>
2020-08-15 17:15:54
Implement a recursive solution
1 parent e8104bc
Changed files (1)
2020
08
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