代码随想录打卡第4天 | 24. 两两交换链表中的节点、19. 删除链表的倒数第N个节点、面试题02.07. 链表相交、142. 环形链表II
24. 两两交换链表中的节点 链接:力扣24 文章:代码随想录 视频:B站讲解 状态:✅ 第一想法 两两交换,头节点也要进入交换,要把这种特殊情况转变为一般情况,所以需要引入dummyHead; 让之后的交换都是某个节点的next和next->next;变成了一般性问题; 还有就是三指针的交换顺序,这里采用标记了最后需要指向的节点降低心智负担; 看完题解后的想法 —— 实现中遇到的困难 dummy.next忘记指向head了; 代码 class Solution { public: ListNode* swapPairs(ListNode* head) { ListNode dummy(0); dummy.next = head; ListNode* cur = &dummy; while (cur->next != nullptr && cur->next->next != nullptr) { ListNode* finalFoward = cur->next->next->next; ListNode* firstMove = cur->next->next; ListNode* secondMove = cur->next; cur->next = firstMove; firstMove->next = secondMove; secondMove->next = finalFoward; cur = cur->next->next; } return dummy.next; } }; 19. 删除链表的倒数第N个节点 链接:力扣19 文章:代码随想录 视频:B站讲解 状态:⚠️ 第一想法 第一想法是反转链表,然后从头找过去,然后删除节点再返回来; ...