面试题15. 链表中倒数第k个结点
来源:互联网 发布:php获取时间戳单位 编辑:程序博客网 时间:2024/06/18 17:28
题目描述
输入一个链表,输出该链表中倒数第k个结点。
思路:
Step1. 设置两个指针slow和fast,初始时均指向头结点
Step2. slow不动,fast向前走k-1步
Step3. 然后两个指针同时向前走,直到fast走到链表的结尾,此时slow指向的就是倒数第k个节点。
注意特殊输入:
输入空指针的情况
链表长度小于k的情况
k为0的情况
/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode FindKthToTail(ListNode head, int k) { if(head == null) { return head; } if(k == 0) { return null; } ListNode slow = head, fast = head; boolean overLength = false; //k是否超过长度 while(--k != 0) { fast = fast.next; if(fast == null) { overLength = true; break; } } if(overLength) { return null; } while(fast.next!=null) { slow = slow.next; fast = fast.next; } return slow; }}
快慢指针相关题目:
1、求链表的中间结点。当快指针走到链表末尾时,慢指针刚好走到链表的中点。
2、判断单链表是否有环。如果快指针追上慢指针,说明有环;反之,当快指针走到链表的结尾时还没有遇到慢指针,说明没有环。
阅读全文
0 0
- 面试题15. 链表中倒数第k个结点
- 面试题15:链表中倒数第k个结点
- 面试题13:链表中倒数第k个结点
- 【面试题十五】链表中倒数第k个结点
- 面试题15 链表中倒数第K个结点
- 面试题15:链表中倒数第k个结点
- 面试题15链表中倒数第k个结点
- 面试题15:链表中倒数第k个结点
- 剑指offer面试题 链表中倒数第K个结点
- 面试题15:查找链表中倒数第k个结点
- 面试题15:链表中倒数第k个结点
- 面试题15:链表中倒数第k个结点
- 【面试题15】链表中倒数第K个结点
- 面试题15: 链表中倒数第k个结点
- 面试题15:链表中倒数第k个结点
- 面试题15 :链表中倒数第k个结点
- 面试题15—链表中倒数第K个结点
- 面试题15:链表中倒数第k个结点
- spring事务管理
- 8.9 HITTING SET problem
- 动态二级下拉框联动(二级数据从数据库中获取)
- 世界是一个圆,我们却走散了
- Tomcat7.0后版本无需在web.xml中配置Servlet信息
- 面试题15. 链表中倒数第k个结点
- BFS+堆优化
- 数据结构:串
- x264参数
- nginx 代理
- 哈佛经验 如何把一天过成48小时?
- Jack(Java Android Compiler Kit)
- JQuery属性样式
- 人工智能架构