Swap Nodes in Pairs

Jaydeep
2 min readDec 12, 2021

--

Photo by Edgar Baltazar on Unsplash

Given a linked list, swap every two adjacent nodes and return its head. You must solve the problem without modifying the values in the list’s nodes (i.e., only nodes themselves may be changed.)

Example 1:

Input: head = [1,2,3,4]
Output: [2,1,4,3]

Example 2:

Input: head = []
Output: []

Example 3:

Input: head = [1]
Output: [1]

Constraints:

  • The number of nodes in the list is in the range [0, 100].
  • 0 <= Node.val <= 100

Solution-iteration

First of all, in order to avoid disturbing the head node separately, generally first apply for an empty node to point to the head node, and then use a pointer to traverse the entire linked list.

Point is a position in front of the two nodes to be exchanged.

Time Complexity: O(N), as we traverse the entire list only once.

Space Complexity: O(N), due to additional dummy list.

--

--

Jaydeep
Jaydeep

Written by Jaydeep

Full Stack Programmer, love to solve problem’s during free time.

No responses yet