面试题15:链表中的倒数第k个结点
来源:互联网 发布:外汇投资收益率知乎 编辑:程序博客网 时间:2024/06/13 22:58
剑指Offer面试题15:链表中倒数第k个结点
题目描述:输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始他们的值依次是1,、2、3、4、5、6,这个链表的倒数第3个结点是值为4的结点。
function LinkList() { var Node = function(element){ this.element = element; this.next = null; } var head = null; //在尾部插入结点 this.append = function(element) { var node = new Node(element), current; if(head === null) { head = node; }else{ current = head; while(current.next) { current = current.next; } current.next = node; } } //找出链表中的倒数第k个结点 this.FindKthToTail = function(k) { if(k <= 0 || head === null) { return null; } var p1 = head, p2 = null; for(var i = 0; i < k-1; i++) { if(p1.next !== null) { p1 = p1.next; }else{ return null; } } p2 = head; while(p1.next) { p1 = p1.next; p2 = p2.next; } return p2.element; } } var link = new LinkList(); link.append(1); link.append(2); link.append(3); link.append(4); link.append(5); link.append(6); console.log(link.FindKthToTail(1));
举一反三:
当我们用一个指针遍历链表不能解决问题的时候,可以尝试用两个指针来遍历链表,可以让其中一个指针遍历的速度快一点(比如一次在链表中上走两步),或者先让它在链表上走若干步。
阅读全文
0 0
- 面试题15:链表中的倒数第k个结点
- [剑指offer][面试题15]输出链表倒数第K个结点
- 面试题15:输入一个链表,输出该链表中倒数第k个结点。
- 面试题15、输入一个链表,输出该链表中倒数第k个结点。
- 面试题15:链表中倒数第k个结点
- 面试题15 链表中倒数第K个结点
- 面试题15:链表中倒数第k个结点
- 面试题15链表中倒数第k个结点
- 面试题15:链表中倒数第k个结点
- 面试题15:查找链表中倒数第k个结点
- 面试题15:链表中倒数第k个结点
- 面试题15:链表中倒数第k个结点
- 面试题15连表中倒数第k个结点
- 【面试题15】链表中倒数第K个结点
- 面试题15: 链表中倒数第k个结点
- 面试题15:链表中倒数第k个结点
- 面试题15 :链表中倒数第k个结点
- 面试题15—链表中倒数第K个结点
- Android弹幕功能实现,模仿斗鱼直播的弹幕效果
- Django新手图文教程
- python连接数据库(3)插入更新和删除
- Hibernate 与 MyBatics 的区别
- tarjan强连通分量求割点
- 面试题15:链表中的倒数第k个结点
- Ubuntu 16.04: Matlab iso 安装方法
- 白鹿原35观后感
- 1005: Theatre Square
- world2016论文怎么删除带页眉格式的那个空白页
- SVN:Fully recursive、Working copy和Immediate children...区别
- spark concat_ws,collect_set
- 在Android中使用Realm作本地存储
- 【简记】大规模Web开发技术(第十三章)