链表
是馨呀!
这个作者很懒,什么都没留下…
展开
-
面试题 02.07. 链表相交 JavaScript实现
题目链接详细解答图解原创 2022-07-13 15:03:05 · 252 阅读 · 0 评论 -
24. 两两交换链表中的节点 JavaScript实现
题目链接二、迭代原创 2022-07-12 15:00:26 · 376 阅读 · 0 评论 -
203. 移除链表元素 JavaScript实现
题目链接注意:防止头节点一开始就被删除,需要创建哑节点dummyHead。原创 2022-07-12 11:12:24 · 327 阅读 · 0 评论 -
234. 回文链表 JavaScript实现
题目链接因为在链表中访问一个特定的节点需要O(n),而这个题目是需要遍历一半链表数量的节点,前后进行比较。二、快慢指针避免使用 O(n)O(n) 额外空间的方法就是改变输入。我们可以将链表的后半部分反转(修改链表结构),然后将前半部分和后半部分进行比较(反转后的前后链表应该是一样的)。1、找到中间节点,将链表拆分2、反转后半部分链表3、判断回文,前后链表是否相等4、恢复链表5、返回结果...原创 2022-06-17 17:18:28 · 308 阅读 · 0 评论 -
剑指 Offer 22. 链表中倒数第k个节点 JavaScript实现
剑指 Offer 22. 链表中倒数第k个节点题目链接1、差值法注意事项:1、head就是整个链表的头节点,所以最后返回指定链表的头节点。2、如果不使用新的指针去遍历链表,那么会造成遍历一遍链表之后,head到了末尾。3、没有涉及到删除节点,只是原来的链表上返回一部分,所以不需要哑节点。var getKthFromEnd = function(head, k) { // 第一次遍历,得到长度。 let cur=head,n=0; while(cur){原创 2022-05-22 16:45:04 · 316 阅读 · 0 评论 -
2. 两数相加 JavaScript实现
2. 两数相加题目链接一、思想二、代码实现var addTwoNumbers = function(l1, l2) { // 存放两数之和新的链表,定义它的头和尾 let head = null,tail = null; // 定义进位carry let carry = 0; // 其中一个可能位数不够,注意进行补0操作 while(l1 || l2){ // 取出节点的数 const n1 = l1 ? l1.val原创 2022-05-22 10:59:30 · 425 阅读 · 0 评论 -
148. 排序链表 JavaScript实现
148. 排序链表题目链接一、思想1、排序算法选择要求:在 O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序排序算法中时间复杂度为 O(nlogn) 的是归并排序,堆排序,快速排序(最差时间复杂度是O(n2))其中最适合链表的排序算法是归并排序。2、归并排序的实现方法归并排序基于分治算法。通常使用自顶向下的递归实现方式,需要使用栈,空间复杂度为O(logn)如果要达到 O(1) 的空间复杂度,则需要使用自底向上的实现方式。二、自顶向下归并排序 – 递归版本实现递归分割原创 2022-05-20 15:54:05 · 619 阅读 · 0 评论 -
82. 删除排序链表中的重复元素 II + 83. 删除排序链表中的重复元素
82. 删除排序链表中的重复元素 II题目链接一、思想1、注意使用哑节点,避免头部被删除的可能。2、使用指针进行遍历,比较节点的值。然后移动指针即可。3、因为要多次删除元素,所以需要将删除的元素的值记录下来。二、代码实现var deleteDuplicates = function(head) { // 定义一个哑节点,使用cur指针去进行遍历 const dummyHead = new ListNode(0,head) let cur = dummyHead原创 2022-05-19 15:57:32 · 320 阅读 · 0 评论 -
19. 删除链表的倒数第 N 个结点 JavaScript实现
19. 删除链表的倒数第 N 个结点题目链接一、栈1、设置一个哑节点,避免删除头节点的问题。构成新的链表2、遍历新的链表,然后将节点压入栈中。3、从栈顶弹出n个元素。那么再从栈顶弹出元素的时候,就是被删除节点的前一个节点pre。4、根据pre节点删除倒数第n个元素。二、需要注意的事项1、要删除节点 y,我们需要知道节点 y 的前驱节点 x,并将 x 的指针指向 y 的后继节点。但由于头节点不存在前驱节点,因此我们需要在删除头节点时进行特殊判断。但如果我们添加了哑节点,那么头节点的前驱节点就是原创 2022-05-17 16:07:25 · 289 阅读 · 0 评论 -
876. 链表的中间结点 + 143. 重排链表
143. 重排链表题目链接一、思想重排链表的解题过程1、找到链表的中间结点2、将后半部分的链表进行翻转3、将前半部分和后半部分以一定的规则进行连接二、代码实现在这里插入代码片原创 2022-05-15 14:58:05 · 318 阅读 · 0 评论 -
141. 环形链表+ 142. 环形链表 II + 160. 相交链表
141. 环形链表 js leetcode原创 2022-04-07 17:08:44 · 1389 阅读 · 0 评论 -
21. 合并两个有序链表 JavaScript实现
js leetcode 合并两个有序链表原创 2022-04-07 15:17:54 · 1476 阅读 · 0 评论 -
146.LRU缓存机制 JavaScript实现
LRU缓存机制 js leetcode Map原创 2022-03-25 14:26:36 · 1553 阅读 · 0 评论 -
206 反转链表 + 92. 反转链表 II
leetcode 反转链表 js原创 2022-03-22 17:14:56 · 956 阅读 · 0 评论