![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指Offer刷题
文章平均质量分 52
唯与痴想
这个作者很懒,什么都没留下…
展开
-
【剑指Offer刷题】——两个链表的第一个公共节点(52)
Leetcode刷题地址:https://leetcode-cn.com/problemset/lcof/题目输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA= 2, skipB = 3 输出:Reference of the node with value = 8 输入解释:相交节点的值为 8 (注意.原创 2021-03-14 16:43:35 · 88 阅读 · 0 评论 -
【剑指Offer刷题】——复杂链表的复制(35)
Leetcode刷题地址:https://leetcode-cn.com/problemset/lcof/题目Solution 1哈希node和index,比较愚蠢。。。主要思路是两次遍历链表,用一个map存储每一个结点指针对应的index。第二次遍历时向前或向后增加到对应的index,然后更新random指针。时间:O(n + n * n/2) -> O(n^2);空间:O(n)。Node* copyRandomList(Node* head) { if (!head) r.原创 2021-03-03 23:06:28 · 127 阅读 · 2 评论 -
【剑指Offer刷题】——合并两个排序的链表(25)
Solution 1以其中一个链表作为基准链表,和另一个链表每个元素一一比较,在合适的位置修改指针,最终返回第一个链表。时间:O(n1 + n2),其中n1和n2分别代表两个链表的长度;空间:O(1)ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if (!l1) return l2; else if (!l2) return l1; ListNode* first = l1; ListNode*原创 2021-03-03 09:38:48 · 93 阅读 · 0 评论 -
【剑指Offer刷题】——反转链表(24)
Leetcode刷题地址:https://leetcode-cn.com/problemset/lcof/题目定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000Solution 1将链表每个节点的指针存入一个数组,然后逆序调整每个指针的next指向。.原创 2021-02-25 19:59:19 · 105 阅读 · 0 评论 -
【剑指Offer刷题】——链表中倒数第k个节点(22)
Leetcode刷题地址:https://leetcode-cn.com/problemset/lcof/题目输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.Solutio.原创 2021-02-24 20:42:55 · 71 阅读 · 0 评论 -
【剑指Offer刷题】——数组中重复的数字(03)
Leetcode刷题地址:https://leetcode-cn.com/problemset/lcof/Solution 1排序再比较。int findRepeatNumber(vector<int>& nums) { sort(nums.begin(), nums.end()); for (int i=0; i<nums.size()-1; i++) { if (nums[i] == nums[i+1]) return nums[i];.原创 2021-02-23 21:06:40 · 76 阅读 · 0 评论