Medium
,Linked List
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:
[0, 100]
.Node.val
<= 100
class Solution:
def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]:
# If the list has no node or has only one node left.
if not head or not head.next:
return head
first_node = head
second_node = head.next
# Swapping
first_node.next = self.swapPairs(second_node.next)
second_node.next = first_node
# Now the head is second node
return second_node
Ron ChenTue, May 16, 2023
function swapPairs(head) {
if (!head || !head.next) return head;
const temp = head.next;
head.next = swapPairs(temp.next);
temp.next = head;
return temp;
}
MarsgoatTue, May 16, 2023