leetcode

Leetcode Solutions (0x6A73)
git clone https://git.pngu.org/leetcode
Log | Files | Refs | Submodules | README

swap_nodes_pairs.c (499B)


// 24. Swap Nodes in Pairs

/*
 * 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)
 */

struct ListNode {
  int val;
  struct ListNode *next;
};

struct ListNode *swapPairs(struct ListNode *head) {
  if (!head || !head->next)
    return head;
  struct ListNode *tmp = head->next;
  head->next = swapPairs(head->next->next);
  tmp->next = head;
  return tmp;
}