比较好的做网站,薪水最高的十大专业,黄骅海边旅游景区,利用黑群晖做网站前言 题目#xff1a; 24. 两两交换链表中的节点 文档#xff1a; 代码随想录——两两交换链表中的节点 编程语言#xff1a; C 解题状态#xff1a; 没画图#xff0c;被绕进去了… 思路
思路还是挺清晰的#xff0c;就是简单的模拟#xff0c;但是一定要搞清楚交换的…前言 题目 24. 两两交换链表中的节点 文档 代码随想录——两两交换链表中的节点 编程语言 C 解题状态 没画图被绕进去了… 思路
思路还是挺清晰的就是简单的模拟但是一定要搞清楚交换的步骤绕不清楚的时候最好画图来辅助解决问题。
代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* swapPairs(ListNode* head) {if (head nullptr || head - next nullptr) return head;ListNode* dummyHead new ListNode(0);dummyHead - next head;ListNode* cur dummyHead;while (cur - next ! nullptr cur - next - next ! nullptr) {ListNode* tmp1 cur - next;ListNode* tmp2 cur - next - next - next;cur - next cur - next - next;cur - next - next tmp1;cur - next - next - next tmp2;cur cur - next - next;}head dummyHead - next;delete dummyHead;return head;}
};时间复杂度 O ( n ) O(n) O(n)空间复杂度 O ( 1 ) O(1) O(1)