aboutsummaryrefslogtreecommitdiff
path: root/swap_nodes_pairs.cpp
blob: 139c3367bc8e0343c1dcec467c0ca9e5f4d04ff7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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;
  }
};