24. 两两交换链表中的节点
Posted zouma
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了24. 两两交换链表中的节点相关的知识,希望对你有一定的参考价值。
一、非递归
1 ListNode* swapPairs(ListNode* head) 2 ListNode* pre = (ListNode*)malloc(sizeof(ListNode)); 3 pre->next = head; 4 ListNode* temp = pre; 5 6 while (temp->next&&temp->next->next) 7 8 ListNode* start = temp->next; 9 ListNode* end = temp->next->next; 10 11 temp->next = end; 12 start->next = end->next; 13 end->next = start; 14 15 temp = start; 16 17 return pre->next; 18
二、递归
1 ListNode* swapPairs(ListNode* head) 2 if (head == NULL || head->next == NULL) 3 return head; 4 ListNode* next = head->next; 5 head->next = swapPairs(next->next); 6 next->next = head; 7 return next; 8
以上是关于24. 两两交换链表中的节点的主要内容,如果未能解决你的问题,请参考以下文章