![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
文章平均质量分 52
多练习
Reset。
这个作者很懒,什么都没留下…
展开
-
LeetCode 146.LRU缓存机制
刷题链接:LRU缓存机制题目运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限原创 2021-08-17 11:40:19 · 119 阅读 · 0 评论 -
Leetcode — 21.合并两个有序链表(有图易懂)
题目描述将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。OJ链接示例1:示例二:示例三:思路:malloc动态开辟一个头结点newHead,指针newTail指向newHead,cur1和cur2分别对两个链表遍历,比较大小,通过newTail指针将它们有序连接,当某一链表有剩余结点,则把newTail与剩余结点连接。存储newHead->next结点,释放头结点,返回所存储的结点。代码:struct ListNode* mergeTwoLis原创 2021-02-28 17:03:22 · 125 阅读 · 0 评论 -
Leetcode — 876.链表的中间结点(有图易懂)
题目描述给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。OJ链接示例1:示例2:思路描述:设置两个指针fast和slow,每次fast走两个结点,slow走一个结点。当奇数个结点时,fast->next == NULL结束;当偶数个结点时,fast == NULL结束。slow所指结点就是中间结点。代码:struct ListNode* middleNode(struct ListNode* head){ struct L原创 2021-02-28 13:51:36 · 98 阅读 · 0 评论 -
Leetcode — 206.反转链表(有图易懂)
题目描述反转一个单链表。OJ链接示例:思路:可以使用头插的方法。代码:struct ListNode* reverseList(struct ListNode* head){ if(head == NULL || head->next == NULL) return head; struct ListNode* newHead = NULL; struct ListNode* cur = head; while(cur != NULL)原创 2021-02-28 13:45:07 · 80 阅读 · 0 评论 -
Leetcode — 203.移除链表元素(有图易懂)
题目描述删除链表中等于给定值 val 的所有节点。OJ链接示例:思路:设置两个指针prev和tail,tail指针在前面遍历,找到值为val的结点,prev比tail慢一步, 找到值为val的前一个结点, prev->next指向tail->next,删除tail结点, tail指向下一个结点。代码:struct ListNode* removeElements(struct ListNode* head, int val){ struct ListNode* prev =原创 2021-02-28 13:38:04 · 82 阅读 · 0 评论