03 2023 档案
摘要:1. 复制带随机指针的链表 题目链接 题目描述 解题思路 首先,解这道题必须要理解链表在内存中的表示 字母表示每一个节点在内存中的起始地址, 每一个节点空间的next 存储下一个节点的地址, random存储随机节点的地址 然后理解题目意思, 这道题要求创建一个拷贝链表,每一个拷贝节点的val =
阅读全文
摘要:1. 环形链表 题目链接 题目描述 解题思路 在这道题中, 判断链表是否存在环, 可以转换为快慢指针追击问题 快指针一次走两步, 慢指针一次走一步,当慢指针进环, 快指针追击慢指针 如果快指针追到了慢指针,就可以证明该链表带环 /** * Definition for singly-linked l
阅读全文
摘要:1. 移除链表元素 题目链接 题目描述 解题思路 这道题较好的解法是创建一个新链表, 把不等于val的节点链接到一起, 然后返回新链表的头结点 struct ListNode* removeElements(struct ListNode* head, int val){ struct ListNo
阅读全文
摘要:1. 移除元素 题目链接 要求时间复杂度为O(N), 空间复杂度为O(1) 解法: 双指针 int removeElement(int* nums, int numsSize, int val){ int src = 0, dst = 0; while (numsSize--) { if (nums
阅读全文