Chuyển đến nội dung chính

Bài đăng

Đang hiển thị bài đăng từ Tháng 12, 2023

Bài 24 Leetcode: Swap Nodes in Pairs

Đề bài: Cho một danh sách liên kết, hoán đổi mỗi cặp nút liên tiếp nhau và trả về đầu của danh sách liên kết đó. Bạn phải giải quyết bài toán mà không thay đổi các giá trị trong các nút của danh sách (nghĩa là chỉ có thể thay đổi các nút chính nó). Ví dụ 1: Swap Nodes in Pairs Input: head = [1,2,3,4] Output: [2,1,4,3] Ví dụ 2: Input: head = [] Output: [] Ví dụ 3: Input: head = [1] Output: [1] Ràng buộc: Số lượng nút trong danh sách nằm trong khoảng [0, 100]. 0 <= giá trị của nút <= 100. Giải thích thuật toán bằng C++ class Solution { public: ListNode* swapPairs(ListNode* head) { const int length = getLength(head); ListNode dummy(0, head); ListNode* prev = &dummy; ListNode* curr = head; for (int i = 0; i < length / 2; ++i) { ListNode* next = curr->next; curr->next = next->next; next->next = prev->next; prev->next = next; prev = curr; curr = curr->next; } return dummy.n