题目: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
题解思路:
方法:穿针引线+四个指针
函数代码:
class Solution { public: ListNode* swapPairs(ListNode* head) { ListNode *dummy=new ListNode(0); dummy->next=head; ListNode *p=dummy; while(p->next&&p->next->next) { ListNode *node1=p->next; ListNode *node2=node1->next; ListNode *next=node2->next; node2->next=node1; node1->next=next; p->next=node2; p=node1; } return dummy->next; } };