LeetCode
从2016年大二左右开始就接触算法,起初也简单练习过,但现在工作一段时间后,随着代码水平的提高(自我感觉
),算法水平一直没有进步哈,所以记录下来相关题目,不断练习。
提前说说刷题的心得:
-
只有算法不薄弱才能拿高工资,如果你想当一个nb的程序员,现在开始努力吧 !
-
坚持,积少成多。万事开头难
在题目预览表中,会有题目的编号和题目的难易程度,但是我认为,题目的难易程度并不能真的确定它难还是不难,只是人为对他评价而已,有些难的题确实 Easy。
因为面试中遇到几次都是LeetCode原题,并且是英文题目,题目的标题
都是LeetCode英文官网
的链接地址。题目的编号
是中文
官网地址。
题目预览表
Linked List
@花花酱大佬说一个标签做10-20题,遂找到如下进行练习。
# | Title | Difficulty |
---|---|---|
2 | Add Two Numbers | Medium |
19 | Remove Nth Node From End of List | Medium |
21 | Merge Two Sorted Lists | Easy |
24 | Swap Nodes in Pairs | Medium |
25 | Reverse Nodes in k-Group | Hard |
61 | Rotate List | Medium |
82 | Remove Duplicates from Sorted List II | Medium |
83 | Remove Duplicates from Sorted List | Easy |
86 | Partition List | Medium |
92 | Reverse Linked List II | Medium |
143 | Reorder List | Medium |
147 | Insertion Sort List *** | Medium |
148 | Sort List *** | Medium |
160 | Intersection of Two Linked Lists | Easy |
203 | Remove Linked List Elements | Easy |
206 | Reverse Linked List | Easy |
234 | Palindrome Linked List | Easy |
237 | Delete Node in a Linked List | Easy |
328 | Odd Even Linked List | Medium |
445 | Add Two Numbers II | Medium |
2. Add Two Numbers
19. Remove Nth Node From End of List
通过求出总长度 然后删除第几个就不难了
24. Swap Nodes in Pairs
3个指针 preHead left right
25. Reverse Nodes in k-Group
3个指针 preHead left right 什么时候切换preHead是个问题
61. Rotate List
形成一个换 Rotate 然后打破这个环
82. Remove Duplicates from Sorted List II
指针 pre curr 删除的依据是下一个值和当前值进行比较 然后 什么时候进行连接
83. Remove Duplicates from Sorted List
86. Partition List
重新构成链表 小的 大的 然后串一串
92. Reverse Linked List II
分割成三部分
143. Reorder List
找到那部分是后面的值 然后翻转
203. Remove Linked List Elements
206. Reverse Linked List
234. Palindrome Linked List
237. Delete Node in a Linked List
把下一个的值给当前位置,然后删除下个位置 666
328. Odd Even Linked List
445. Add Two Numbers II
一些总结
1.翻转链表
2.找到链表的中心点
3.得到链表长度
4.头插法构造链表
5.利用 preHead left right 多指针
文章的问题如题一致:翻转一个链表
尽量使用多的变量去引用位置 如 temp,prev,curr