
链表
文章平均质量分 50
Jeniclala
这个作者很懒,什么都没留下…
展开
-
JavaScript 链表:判断链表是否有环【两种方法,思路与知识点总结】
思路一:一个走两步,一个走一步,如果链表中有环,必会相遇。function hasCycle(head) { let one=head; let two=head; while(two!=null&&two.next!=null){ one=one.next; two=two.next.next; if(one===two){ return true; } } ..原创 2021-08-05 14:55:26 · 1409 阅读 · 0 评论 -
JavaScript 链表:反转链表的前n项&反转链表的一部分
function reverseBetween(head, left, right) { if(left==1){ return reverseN(head,right); } head.next=reverseBetween(head.next,left-1,right-1); return head;};let successor=null;function reverseN(head,n){ if(n==1){ succ..原创 2021-07-28 22:58:54 · 383 阅读 · 1 评论 -
JavaScript 链表:反转链表【思路与知识点总结】
//反转链表输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL测试数据:let Head={ val:1, next:{ val:2, next:{ val:3, next:{ val:4, next:{原创 2021-07-20 09:38:51 · 1422 阅读 · 0 评论 -
JavaScript 链表:从尾到头打印链表【思路与知识点总结】
描述输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。示例1输入:{1,2,3}返回值:[3,2,1]示例2输入:{67,0,24,58}返回值:[58,24,0,67]思路: val属性存储当前的值,next属性存储下一个节点的引用。要遍历链表就是不断找到当前节点的next节点,当next节点是null时,说明是最后一个节点,停止遍历。因为是从尾到头的顺序,使用一个队列来存储打印结果,每次从队列头部插入。注意:JS中的链表实质是对象,所以一般来说遍历链表的循环条件原创 2021-06-27 15:41:50 · 251 阅读 · 0 评论 -
JavaScript 链表:合并两个排序的链表
描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。示例1输入:{1,3,5},{2,4,6}返回值:{1,2,3,4,5,6}参考文章思路:链表头部节点比较,取较小节点。小节点的next等于小节点的next和大节点的较小值。如此递归。返回小节点。考虑代码的鲁棒性,也是递归的终止条件,两个head为null的情况,取对方节点返回。//测试代码/*function ListNode(x) { this.val = x; this.n原创 2021-06-27 15:08:49 · 255 阅读 · 0 评论