给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
从第一个开始循环判断当前节点和下一个节点是否为空有一个为空则停止,当前节点和下一个节点的值通过中间变量来交换,把当前变量指向next的next的节点,返回头指针就可以了。
示例:
给定 1->2->3->4, 你应该返回 2->1->4->3.
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode * swapPairs(struct ListNode* head){
struct ListNode * p = head;
while(head != NULL && head->next !=NULL){
int n = head->val;
head->val = head->next->val;
head->next->val = n;
head = head->next->next;
}
return p;
}