- Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head.
You may not modify the values in the list’s nodes, only nodes itself may be changed.
Example:
Given 1->2->3->4, you should return the list as 2->1->4->3.
python
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def swapPairs(self, head: ListNode) -> ListNode:
if not head:
return None
temp = []
while head:
temp.append(head.val)
head = head.next
for i in range(len(temp)):
if (i+1) % 2 ==0:
t = temp[i-1]
temp[i-1] = temp[i]
temp[i] = t
re = ListNode(temp[0])
res = re
for i in range(1,len(temp)):
res.next = ListNode(temp[i])
res = res.next
return re
java:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode swapPairs(ListNode head) {
if(head == null){
return null;
}
ListNode p = head;
ListNode pre = head;
int n = 1;
int temp = 0;
while(p!=null){
if(n%2==0){
temp = pre.val;
pre.val = p.val;
p.val = temp;
}
pre = p;
p = p.next;
n++;
}
return head;
}
}