14链表中倒数第k个结点
题目描述
快慢指针
快指针 先走k 步, 然后快慢指针一起走
当快指针走到null 时, 慢指针就是所求的倒数第k个节点
tips:
判断k是否越界是在快指针走的时候
- public class Solution {
- public ListNode FindKthToTail(ListNode head,int k) {
- // 边界条件
- if(head==null||head.next==null) return head;
- ListNode fast = head;
- ListNode slow = head;
- for(;k>0;k--){
- //如果k越界
- if(fast==null) return null;
- fast=fast.next;
- }
- while(fast!=null){
- fast=fast.next;
- slow=slow.next;
- }
- return slow;
- }
- }
- public class Solution {
- public ListNode FindKthToTail(ListNode head,int k) {
- if(head == null || head.next==null) return head;
- ListNode fast = head;
- ListNode slow = head;
- for(int i = 0;i<k;i++){
- if(fast==null) return null;
- fast = fast.next;
- }
- while(fast!= null){
- fast = fast.next;
- slow =slow.next;
- }
- return slow;
- }
20180307
- public class Solution {
- public ListNode FindKthToTail(ListNode head,int k) {
- if(head==null) return head;
- int cnt = 0;
- ListNode fast = head;
- ListNode slow = head;
- for(ListNode root = head;root != null;root = root.next)
- cnt++;
- if(k>cnt||k<=0)return null;
- for(int i = 0;i<k;i++)
- fast = fast.next;
- while(k!=0 && fast!=null){
- fast = fast.next;
- slow = slow.next;
- }
- return slow;
- }
- }
C++:20180808
- /*
- struct ListNode {
- int val;
- struct ListNode *next;
- ListNode(int x) :
- val(x), next(NULL) {
- }
- };*/
- class Solution {
- public:
- ListNode* FindKthToTail(ListNode* head, unsigned int k) {
- if(head==NULL) return NULL;
- ListNode* fast = head;
- ListNode* slow = head;
- for(;k>;k--){
- if(fast==NULL)
- return NULL;
- fast = fast->next;
- }
- while(fast!=NULL){
- fast = fast->next;
- slow = slow->next;
- }
- return slow;
- }
- };
14链表中倒数第k个结点的更多相关文章
- 剑指offer 14. 链表中倒数第 k 个结点
14. 链表中倒数第 k 个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点 法一:快慢指针 快指针先走 k 步,等快指针到达尾部时,慢指针所指结点即是倒数第 k 个结点 public cla ...
- 剑指Offer 14. 链表中倒数第k个结点 (链表)
题目描述 输入一个链表,输出该链表中倒数第k个结点. 题目地址 https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?t ...
- 14.链表中倒数第k个结点 Java
题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路 快指针和慢指针,快指针先跑K个单位然后慢指针开始跑,快指针跑到最后一个节点的时候慢指针对应的就是链表中倒数第k个结点 public stat ...
- [剑指Offer] 14.链表中倒数第k个结点
[思路]利用两个相隔为k-1个结点的指针进行遍历,当后一个指针移到末尾时,前一个指针就是要求的结点. /* struct ListNode { int val; struct ListNode *ne ...
- 《剑指offer》— JavaScript(14)链表中倒数第k个结点
链表中倒数第k个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路 两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一个指正走(k-1)步,到达第k个节点: 然后两个指针同时 ...
- 【剑指Offer】14、链表中倒数第k个结点
题目描述: 输入一个链表,输出该链表中倒数第k个结点.为了符合习惯,从1开始计数,即链表的尾结点是倒数第1个节点.例如,一个链表有6个结点,从头结点开始,它们的值依次是1,2,3,4,5,6. ...
- 【面试题015】链表中倒数第k个结点
[面试题015]链表中倒数第k个结点 可以用两个指针,当第一个指针指向了第k个时候,第二个指针让他指向链表的第一个元素,然后这两个指针同时向后面移动, 当第一个指针移动到末尾的时候,第二个指针指 ...
- 输入一个单向链表,输出该链表中倒数第K个结点
输入一个单向链表,输出该链表中倒数第K个结点,具体实现如下: #include <iostream> using namespace std; struct LinkNode { publ ...
- 【Java】 剑指offer(22) 链表中倒数第k个结点
正文 本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入一个链表,输出该链表中倒数第k个结点.为了符合大多数人的 ...
随机推荐
- 11 jsp脚本调用java代码
大多数情况下, jsp 文档的大部分由静态文本(html)构成, 为处理该页面而创建的 servlet 只是将它们原封不动的传递给客户端, 原封不动的传送给客户端有两个小例外: 1. 如果想传送 &l ...
- 图片触及翻转效果 css3
实现图片由左向右飞入回到最初设定位置 ,鼠标浮上去旋转显示另一张图片效果: html: <!DOCTYPE HTML> <html> <head> <meta ...
- linux 启动jar命令
进入ECS目录jar 存放目录: 1.执行命令: linux:启动jar nohup java -jar qualityshop-api.jar>log.file 2>&1 &am ...
- Petrozavodsk Summer-2015. Ivan Smirnov Contest 1 B Bloom
http://opentrains.snarknews.info/~ejudge/team.cgi?contest_id=001463 题目大意:给出$n$个$x$,$m$个$y$,问有多少个hash ...
- java三大框架SSH(Struts2 Spring Hibernate)
http://www.cnblogs.com/qiuzhongyang/p/3874149.html
- Python捕获异常
一.常见异常 1.语法错误:SyntaxError:invalid syntax (1)案例: (1)解决方法: ①查看代码有没有红色波浪线 ②熟悉python基本语法 2.变量名不存在:NameEr ...
- Windows防火墙端口规则设置新建方法
from:https://jingyan.baidu.com/article/2a1383289fd094074a134ff0.html Windows防火墙有什么用呢?它是电脑的一道安全屏障,可以有 ...
- input 和 button 的 border-box 模型和 IE8 错位
用 input 和 button 时出现了几个奇怪的现象,先放几个 input 和 button CSS: * { margin:; padding:; } input,button { width: ...
- Web Tracking
采集方式_数据采集_用户指南_日志服务-阿里云 https://help.aliyun.com/document_detail/28981.html http://docs-aliyun.cn-han ...
- Java 之异常
异常概述 异常: 是在运行时期发生的不正常情况. 在 java 中用类的形式对不正常情况进行了描述和封装. 描述不正常情况的类, 就称为异常类. 异常体系 父类: Throwable (JDK 文档) ...