# Swap Nodes in Pairs Leetcode Solution

In this post, we are going to solve the Swap Nodes in Pairs Leetcode Solution problem of Leetcode. This Leetcode problem is done in many programming languages like C++, Java, and Python.

## Problem

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`

Now, lets see the leetcode solution of Swap Nodes in Pairs Leetcode Solution.

### Swap Nodes in Pairs Leetcode Solution in Python

```class Solution:
def swapPairs(self, head: ListNode) -> ListNode:
def getLength(head: ListNode) -> int:
length = 0
length += 1
return length

dummy = ListNode(0, head)
prev = dummy

for _ in range(length // 2):
next = curr.next
curr.next = next.next
next.next = prev.next
prev.next = next
prev = curr
curr = curr.next

return dummy.next
```

### Swap Nodes in PairsLeetcode Solutionin CPP

```class Solution {
public:
ListNode* swapPairs(ListNode* head) {
const int length = getLength(head);
ListNode* prev = &dummy;
ListNode* curr = head;

for (int i = 0; i < length / 2; ++i) {
ListNode* next = curr->next;
curr->next = next->next;
next->next = prev->next;
prev->next = next;
prev = curr;
curr = curr->next;
}

return dummy.next;
}

private:
int getLength(ListNode* head) {
int length = 0;
for (ListNode* curr = head; curr; curr = curr->next)
++length;
return length;
}
};
```

### Swap Nodes in Pairs Leetcode Solution in Java

```class Solution {
public ListNode swapPairs(ListNode head) {
final int length = getLength(head);
ListNode dummy = new ListNode(0, head);
ListNode prev = dummy;
ListNode curr = head;

for (int i = 0; i < length / 2; ++i) {
ListNode next = curr.next;
curr.next = next.next;
next.next = curr;
prev.next = next;
prev = curr;
curr = curr.next;
}

return dummy.next;
}

private int getLength(ListNode head) {
int length = 0;
for (ListNode curr = head; curr != null; curr = curr.next)
++length;
return length;
}
}
```

Note: This problem Swap Nodes in Pairs is generated by Leetcode but the solution is provided by Chase2learn This tutorial is only for Educational and Learning purposes.

Sharing Is Caring