![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
程程程乘什么
这个作者很懒,什么都没留下…
展开
-
剑指Offer:35 复杂链表的复制
读完题就放弃自己思考了,直接看了书上的思路:思路1:先复制原链表,再遍历原链表与复制链表,为每个复制节点设置对应的random指针;时间复杂度O(n^2)思路2:先复制原链表,同时把原节点与对应的复制节点<N,N'>的配对信息保存Hash表,这样时间复杂度O(n),空间复杂度O(n)思路3:如下程序所示时间复杂度O(n),空间复杂度O(1)/*struct Ran...原创 2019-06-15 23:32:56 · 94 阅读 · 0 评论 -
LeetCode 147:对链表进行插入排序
指针的操作比较繁琐复杂,需要捋清楚再写,中间犯了3个错误:class Solution {public: ListNode* insertionSortList(ListNode* head) { if(!head || !head->next) return head; //Bug2:不应该是nullptr,应该是head ListNod...原创 2020-02-22 12:20:49 · 148 阅读 · 1 评论 -
LeetCode 234/9/125:回文链表,回文数,验证回文串
234:回文链表将链表存入数组再判断:Python有语法糖,不需要双指针法,直接就可以翻转比较。class Solution: def isPalindrome(self, head: ListNode) -> bool: array = [] currNode = head while currNode is not...原创 2020-02-02 14:58:39 · 101 阅读 · 0 评论 -
LeetCode 92:翻转链表 2
这道题乍一想觉得很简单,写完程序觉得自己的方法细节处理太繁琐了,改了两个比较隐蔽的Bug。对LeetCode测试样例可以通过,但是[3, 5],1,2这样的case就过不了,仔细推了一下,可能是prev没有在rear前面一个节点,而是和它同一个节点导致的。class Solution {public: ListNode* reverseBetween(ListNode* head...原创 2020-01-31 18:54:41 · 81 阅读 · 0 评论 -
LeetCode 206/24/25:一系列链表翻转问题
206. 翻转链表:加头结点,没有必要:class Solution {public: ListNode* reverseList(ListNode* head) { if(!head) return nullptr; ListNode dummy(0); dummy.next = head; ListNod...原创 2020-01-30 23:13:25 · 74 阅读 · 0 评论