两两交换链表中的节点 发表于 2018-04-26 分类于 算法 , 链表 Disqus: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 示例: 1给定 1->2->3->4, 你应该返回 2->1->4->3. 说明: 你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 解答: 123456789ListNode * 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; }