Swap Nodes in Pairs

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]


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


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.




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

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Building entire VPC using Terraform in AWS

What is FaaS? Function as a Service explained.

I could have forgotten to make the call that literally changed the trajectory of my entire life.

Kafka Architecture & Internal

What is AWS DevOps and Tools You Need to Develop a Web App

learn programming! it can break a loop but never break your heart. 🤖

Using Snowpark for Python with Amazon SageMaker

OOP Concept 101: Aggregation vs Composition

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


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

More from Medium

Design Underground System

LeetCode Weekly Contest 272 Q4 | 2111. Minimum Operations to Make the Array K-Increasing | Hard

Leetcode Series. No 322: Coin Change

LeetCode 24. Swap Nodes in Pairs