feat: 24_feat_nodes_in_pairs

This commit is contained in:
SquidSpirit 2025-02-24 23:19:49 +08:00
parent 34e8cbf547
commit c8db3db41b

View File

@ -0,0 +1,55 @@
#include <bits/stdc++.h>
using namespace std;
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) {
ListNode* currentNode = head;
ListNode* lastNode = nullptr;
ListNode* lastLastNode = nullptr;
int count = 0;
while (currentNode != nullptr) {
if (count % 2 == 1) {
ListNode* nextNode = currentNode->next;
currentNode->next = lastNode;
lastNode->next = nextNode;
if (count / 2 == 0) {
head = currentNode;
} else {
lastLastNode->next = currentNode;
}
lastLastNode = currentNode;
currentNode = nextNode;
} else {
lastLastNode = lastNode;
lastNode = currentNode;
currentNode = currentNode->next;
}
count++;
}
return head;
}
};
int main() {
ListNode* head = new ListNode(1);
ListNode* currentNode = head;
for (int i = 1; i < 4; i++) {
currentNode->next = new ListNode(i + 1);
currentNode = currentNode->next;
}
Solution().swapPairs(head);
return 0;
}