24. 两两交换链表中的节点C

没必要纠结太麻烦的方法。
简单的就两种,一个就是新拿出来空间来装。
要不然就是直接前后数据换一下就行了。
然后需要考虑表空的情况。
结果:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* swapPairs(struct ListNode* head) {
if(!head) return NULL;
struct ListNode* s=head->next;
struct ListNode* f=head;
while(f!=NULL&&s!=NULL){
int t=f->val;
f->val=s->val;
s->val=t;
f=s->next;
if(!f) break;
s=f->next;
}
return head;
}
结果:

浙公网安备 33010602011771号