![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
链表leetcode
anieoo
这个作者很懒,什么都没留下…
展开
-
109. 有序链表转换二叉搜索树
原题链接:109. 有序链表转换二叉搜索树 solution: 递归:中间节点的左边是左子树,右边是右子树原创 2022-06-15 14:22:22 · 131 阅读 · 0 评论 -
86. 分隔链表
原题链接:86. 分隔链表 solution: ① 创建两个链表 ② 链表1保存所有小于x的节点,链表2保存所有大于等于x的节点 ③ 最后拼接两个链表原创 2022-06-14 09:21:12 · 105 阅读 · 0 评论 -
82. 删除排序链表中的重复元素 II
原题链接:82. 删除排序链表中的重复元素 II solution:原创 2022-06-13 19:50:06 · 66 阅读 · 0 评论 -
61. 旋转链表
原题链接:61. 旋转链表 solution: ① 统计链表中的节点数量cnt ② 向右移动k个节点,相当于把前cnt - k个节点依次插入到尾部原创 2022-06-13 12:55:05 · 50 阅读 · 0 评论 -
146. LRU 缓存
在Linux设备驱动中使用中断,相比单片机裸机开发要简单的多,只需要使用内核提供的API申请和释放中断即可。一、申请中断int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev)...原创 2022-05-19 10:53:48 · 107 阅读 · 0 评论 -
148. 排序链表
原题链接:148. 排序链表solution: ①先遍历链表,保存每一个节点。O(n) ②sort根据每个节点值进行排序。O(nlog(n)) ③根据新的顺序创建链表。 O(n)总的时间复杂度:nlog(n)class Solution {public: ListNode* sortList(ListNode* head) { vector<ListNode *> L; ...原创 2022-05-11 15:14:56 · 198 阅读 · 0 评论 -
234. 回文链表
原题链接:234. 回文链表solution:时间复杂度:O(N),空间复杂度O(n)利用快慢指针,慢指针只走了一半的链表,在慢指针遍历的同时保存每个节点的值, 当快指针走到链表终点的时候,利用数组元素和当前slow开始比较。class Solution {public: bool isPalindrome(ListNode* head) { if(head == nullptr || head->next == nullptr) return tru.原创 2022-04-28 20:15:12 · 843 阅读 · 0 评论 -
21. 合并两个有序链表
原题链接:21. 合并两个有序链表solution: 类似于归并排序的思想/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr...原创 2022-04-22 11:12:39 · 63 阅读 · 0 评论 -
707. 设计链表
原题链接:707. 设计链表solution:class MyLinkedList {public: struct ListNode { int val; ListNode *next; //下一个节点 ListNode(int val):val(val),next(nullptr){} }; MyLinkedList() { dummyhead = new ListNode(-1); .原创 2022-04-20 15:51:14 · 63 阅读 · 0 评论 -
24. 两两交换链表中的节点
原题链接:24. 两两交换链表中的节点solution:遍历class Solution {public: ListNode* swapPairs(ListNode* head) { ListNode *dummy = new ListNode(-1); dummy->next = head; ListNode *cur = dummy; while(cur->next != nullptr &&a.原创 2022-04-19 12:52:13 · 321 阅读 · 0 评论 -
19. 删除链表的倒数第 N 个结点
原题链接:19. 删除链表的倒数第 N 个结点solution: 最朴素的做法,先计算链表的长度,在移动指针。class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode *dummy = new ListNode(-1); ListNode *cur = dummy; dummy->next = head; .原创 2022-04-18 22:56:37 · 300 阅读 · 0 评论 -
83. 删除排序链表中的重复元素
原题链接:83. 删除排序链表中的重复元素solution:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, .原创 2022-03-22 10:48:07 · 65 阅读 · 0 评论 -
206. 反转链表
原题链接:206. 反转链表solution:遍历的方式/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, L原创 2022-03-22 10:26:20 · 725 阅读 · 0 评论 -
203. 移除链表元素
原题链接:203. 移除链表元素solution:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListN.原创 2022-03-21 23:40:54 · 448 阅读 · 0 评论 -
141. 环形链表
原题链接:141. 环形链表solution: 利用快慢指针,快指针一次走2步,满指针一次走1步,他们一定会在环中相遇/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:...原创 2022-03-21 22:44:51 · 581 阅读 · 0 评论 -
876. 链表的中间结点
原题链接:力扣solution: 遍历链表+n/2/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(i...原创 2022-03-18 10:05:39 · 666 阅读 · 0 评论