diff --git a/include/s0024_swap_nodes_in_pairs.hpp b/include/s0024_swap_nodes_in_pairs.hpp new file mode 100644 index 0000000..88e0a0b --- /dev/null +++ b/include/s0024_swap_nodes_in_pairs.hpp @@ -0,0 +1,17 @@ +#ifndef S0024_SWAP_NODES_IN_PAIRS +#define S0024_SWAP_NODES_IN_PAIRS + +struct ListNode { + int val; + ListNode* next; + ListNode() : val(0), next(nullptr) {} + ListNode(int x) : val(x), next(nullptr) {} + ListNode(int x, ListNode* next) : val(x), next(next) {} +}; + +class Solution { + public: + ListNode* swapPairs(ListNode* head); +}; + +#endif diff --git a/src/s0024_swap_nodes_in_pairs.cpp b/src/s0024_swap_nodes_in_pairs.cpp new file mode 100644 index 0000000..3a59528 --- /dev/null +++ b/src/s0024_swap_nodes_in_pairs.cpp @@ -0,0 +1,11 @@ +#include "s0024_swap_nodes_in_pairs.hpp" + +ListNode* swapPairs(ListNode* head) { + if (head == nullptr || head->next == nullptr) { + return head; + } + ListNode *newHead = head->next; + head->next = swapPairs(newHead->next); + newHead->next = head; + return newHead; +}