还不快抢沙发

添加新评论

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 示例: ``` 给定 1->2->3->4, 你应该返回 2->1->4->3. ``` 说明: - 你的算法只能使用常数的额外空间。 - 你**不能只是单纯的改变节点内部的值**,而是需要实际的进行节点交换。 解答: ``` ListNode * swapPairs(ListNode* head) { if (!head || !head->next) return head; auto a = head; auto b = a->next; auto c = b->next; a->next = swapPairs(c); b->next = a; return b; } ```