aboutsummaryrefslogtreecommitdiff
path: root/other/swap_nodes_pairs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'other/swap_nodes_pairs.cpp')
-rw-r--r--other/swap_nodes_pairs.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/other/swap_nodes_pairs.cpp b/other/swap_nodes_pairs.cpp
new file mode 100644
index 0000000..139c336
--- /dev/null
+++ b/other/swap_nodes_pairs.cpp
@@ -0,0 +1,21 @@
+// 24. Swap Nodes in Pairs
+#include "leetcode.h"
+
+/*
+ * given a linked list, swap every two adjacent nodes and return
+ * its head. problem must be solved without modifying values
+ * in the list's nodes (ie only nodes themselves may be changed)
+ */
+
+class Solution {
+public:
+ ListNode *swapPairs(ListNode *head) {
+ if (!head || !head->next)
+ return head;
+ ListNode *tmp;
+ tmp = head->next;
+ head->next = swapPairs(head->next->next);
+ tmp->next = head;
+ return tmp;
+ }
+};