24. 两两交换链表中的节点
最近更新:2025-03-25 | 字数总计:156 | 阅读估时:1分钟 | 阅读量:次
- 解析
- 递归法
- 迭代法
Problem: 24. 两两交换链表中的节点
解析
链表的中等题都有些简单,没什么复杂的思考过程
递归法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class Solution { public: ListNode *swapPairs(ListNode *head) { if (head == nullptr || head->next == nullptr) { return head; } ListNode *node1 = head; ListNode *node2 = head->next; node1->next = swapPairs(node2->next); node2->next = node1;
return node2; } };
|
迭代法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution { public: ListNode *swapPairs(ListNode *head) { ListNode *dummy = new ListNode(-1, head); ListNode *temp = dummy; while (temp->next != nullptr && temp->next->next != nullptr) { ListNode *node1 = temp->next; ListNode *node2 = temp->next->next; temp->next = node2; temp = node2->next; node2->next = node1; node1->next = temp; temp = node1; } ListNode *res = dummy->next; delete dummy; return res; } };
|