LeetCode List 专题

博主分享了自己在LeetCode上进行链表题目练习的经历,提到链表在实际开发中使用较少,因为空指针问题可能导致错误。博主计划刷40道链表题目,认为在LeetCode上做题的重点是解决问题而非追求最优解。
摘要由CSDN通过智能技术生成

重头戏,链表

链表我准备刷20个easy,20 个 medium

说点个人的见解:

链表这个东西,在生产环境的代码中,很少用,因为一个不小心就搞出了空指针,比如说 Json 解析个列表啥的。所以这里我实现的话,如果能不改变链表结构,只改变 p->val 就能解决的问题,我不会改变链表结构。

前面没贴代码,这里还是贴上代码吧。

在上大学时,当时刚学C++,感觉链表特别难学,咋指都不对,可能给我留下点儿阴影哈哈哈。

写了半年的Go,回到写 leetcode, 还是得用 C++ ...


分割线

做了几个easy,感觉和 medium 难度明显有区别哈哈,加加速。

有些进阶问题,比如说要一次遍历,或者空间复杂度O(1)。在生产环境中,除了对耗时非常非常敏感的业务,其他根本没这个需求,这个投入产出比太低,这里做题的优先级是 做对 > 最优。


题目难度我的思路我的题解
剑指 Offer 24. 反转链表easystd::reverse(vector)Ubuntu Pastebin
21. 合并两个有序链表easy新建个头指针,return时注意delete头指针Ubuntu Pastebin
剑指 Offer 22. 链表中倒数第k个easy可以用递归来遍历一次,这里遍历两次实现Ubuntu Pastebin
234. 回文链表easyvectorUbuntu Pastebin
剑指 Offer 06. 从尾到头打印链表easystd::reverse(vector)Ubuntu Pastebin
剑指 Offer 25. 合并两个排序的链表easy搞重了,一样的题,略过
141. 环形链表easy典型快慢指针Ubuntu Pastebin
160. 相交链表easy算距离,让长的先走几步Ubuntu Pastebin
剑指 Offer 52. 两个链表的第一个公共节点easy搞重了,略过
83. 删除排序链表中的重复元素easy注意内存释放Ubuntu Pastebin
剑指 Offer 18. 删除链表的节点easy建立prehead,注意prehead的内存释放Ubuntu Pastebin
203. 移除链表元素easy思路同上Ubuntu Pastebin
面试题 02.03. 删除中间节点easy将下个节点值赋值给自己,删掉下个节点Ubuntu Pastebin
237. 删除链表中的节点easy搞重了,略过
面试题 02.01. 移除重复节点easyprehead, 用个桶装一下Ubuntu Pastebin
876. 链表的中间结点easy快慢指针,让链表先走一步,来保证题目中“返回第二个”的需求Ubuntu Pastebin
705. 设计哈希集合easy这个用unsigned int32数组来做更好点
706. 设计哈希映射easy这个用数组来做好一点
1474. 删除链表 M 个节点之后easy%M == 0 时,连续删除 N 个Ubuntu Pastebin
2. 两数相加medium模拟,注意进位Ubuntu Pastebin
146. LRU 缓存机制mediumhash_map + 双向链表Ubuntu Pastebin
143. 重排链表medium对半截断,反转后半部分,再合并Ubuntu Pastebin
92. 反转链表 IImediumstd::vector<int>存储Ubuntu Pastebin
19. 删除链表的倒数第 N 个结点medium整数算出链表长度,然后算出整数删掉第几个。Ubuntu Pastebin
148. 排序链表mediumstd::vector<int>Ubuntu Pastebin
82. 删除排序链表中的重复元素 IImediumhash_map 计数一下Ubuntu Pastebin
面试题 02.05. 链表求和medium搞重了,略过
445. 两数相加 IImediumUbuntu Pastebin
142. 环形链表 IImedium经典解法没意义,直接用 map 存下吧。Ubuntu Pastebin
剑指 Offer 36. 二叉搜索树与双向链表medium先搞出来中序遍历,然后搞成循环链表Ubuntu Pastebin
138. 复制带随机指针的链表medium将a->b->c 变成 a->a->b->b->c->c, 然后random 复制 p->next->random = p->random->next;Ubuntu Pastebin
328. 奇偶链表medium拆成两条链表,再连接Ubuntu Pastebin
剑指 Offer 35. 复杂链表的复制medium搞重了,略过
24. 两两交换链表中的节点medium判断下两个节点是不是空,不是空交换下Ubuntu Pastebin
面试题 02.04. 分割链表medium搞重了,略过
86. 分隔链表medium将小节点拆成新链表再合并Ubuntu Pastebin
109. 有序链表转换二叉搜索树mediumBFS 构建树 + DFS 填充节点Ubuntu Pastebin
61. 旋转链表medium头尾连一起,找断点截断Ubuntu Pastebin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值