LeetCode-24-2つの交換チェーンテーブルのノード-C言語
再帰的手法を用いて再帰的な終了条件は,チェーンテーブルが1つのノード以下であり,ヘッダノードheadおよびhead−>nextノードのみを処理し,両者を交換する.
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
typedef struct ListNode Node;
struct ListNode* swapPairs(struct ListNode* head) {
Node *p = head;
if(!head || !head->next){
return head;
}
p = p->next;
head->next = swapPairs(p->next);
p->next = head;
return p;
}