思路
这道题目正常模拟就行了。//我还不熟练如何模拟,我在这方面还是差了点,毕竟还算是新手。所有链表都建议使用虚拟头结点。
ListNode *swap(ListNode *head) {ListNode *dummyhead = new ListNode(0);dummyhead->next=head;ListNode *cur=dummyHead;while(cur->next!=nullptr &&cur->next->next!=nullptr){List *tmp1 = cur->next;List *tmp2 = cur->next->next->next;cur->next = cur->next->next;cur->next->next=tmp1;cur->next->next=tmp2;}List *result = dummyHead->next;delete dummyHead;return result; }
成果
写完这一题,我对模拟的概念又上一层楼了,这个其实本质就是数学。