摘要: https://leetcode.com/problems/remove duplicates from sorted list ii/ 不断定位出重复的段,然后删除这段。C++须要手动删除链表节点。 阅读全文
posted @ 2017-02-08 20:21 mioopoi 阅读(116) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/remove nth node from end of list/ 首先,dummy node还是要先建起来的,然后分别解决两个子问题: 1. 找到链表中的倒数第n个节点 2. 删除链表中特定节点 对子问题1,O(n)的解法是用两个指针。具 阅读全文
posted @ 2017-02-08 19:52 mioopoi 阅读(103) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/palindrome linked list/ 思路1:遍历一次链表,用一个数组存储链表节点值,然后用双指针法判断数组是否是回文的。需要额外O(n)的空间。 C++ 阅读全文
posted @ 2017-02-08 11:46 mioopoi 阅读(121) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/partition list/ 创建两个dummy node:leftDummy和rightDummy,分别对应划分后的两个链表。然后遍历原始链表,比给定的值小就连到leftDummy链表后面,否则就连到rightDummy链表后面。最后将 阅读全文
posted @ 2017-02-08 10:17 mioopoi 阅读(95) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/remove duplicates from sorted list/?tab=Description 注意dummy node的使用。 阅读全文
posted @ 2017-02-08 09:47 mioopoi 阅读(103) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/linked list cycle/ 思路1:hash map 开一个哈希表,标记访问过的节点,如果重复访问了某一节点,说明有环。需要额外O(n)的空间复杂度。 C++ 思路2:快慢指针 用一快一慢指针,开始两个指针都指向链表头部。慢指针每 阅读全文
posted @ 2017-02-08 09:27 mioopoi 阅读(93) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/reverse linked list/ 阅读全文
posted @ 2017-02-07 23:38 mioopoi 阅读(107) 评论(0) 推荐(0)
摘要: 问题:输入一个链表,输出该链表中倒数第k个结点。 思路1:一个比较笨的方法是遍历链表的节点,统计从当前节点到末尾的节点数,当节点数恰好等于k时,当前节点就是链表中倒数第k个节点。这种方法的时间复杂度是O(n^2),比较坏的情况是:链表很长,且k很小。 C++ 思路2:先遍历一次链表,记下链表的长度 阅读全文
posted @ 2017-02-07 23:21 mioopoi 阅读(295) 评论(0) 推荐(0)
摘要: 问题:输入一个链表,从尾到头打印链表每个节点的值。 思路1:用数组依次存链表的每个节点,然后reverse这个数组。 C++ 阅读全文
posted @ 2017-02-07 22:38 mioopoi 阅读(127) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/reverse nodes in k group/ 依次抽出k个,划分出链表的一段,reverse这段,再拼接回去。 阅读全文
posted @ 2017-02-07 22:20 mioopoi 阅读(139) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/swap nodes in pairs/ 链表的操作题,往往画个图,逻辑就很清晰了。 C++ 阅读全文
posted @ 2017-02-07 20:45 mioopoi 阅读(139) 评论(0) 推荐(0)
摘要: http://www.lintcode.com/en/problem/swap two nodes in linked list/ 先找到两个节点,再执行交换。有一个corner case须要注意:就是两个节点相邻的情况。 C++ 阅读全文
posted @ 2017-02-07 17:58 mioopoi 阅读(145) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/insertion sort list/ 链表的插入排序。实现起来有不少细节须要仔细考虑。 阅读全文
posted @ 2017-02-07 16:50 mioopoi 阅读(101) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/sort list/ 归并排序。须要解决的两个基础问题: 1. 找链表中点(快慢指针) 2. 合并两个排序链表(https://leetcode.com/problems/merge two sorted lists/) C++ 另外,我也 阅读全文
posted @ 2017-02-07 11:12 mioopoi 阅读(146) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/merge two sorted lists/ 模拟归并排序中的归并操作。由于链表的灵活性,可以实现O(1)的空间复杂度。 C++ 阅读全文
posted @ 2017-02-07 10:03 mioopoi 阅读(111) 评论(0) 推荐(0)