【LeetCode】链表 + 快慢指针找倒数结点 | 链表中倒数第k个结点

题目

输入一个链表,输出该链表中倒数第k个结点。

https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId=13\&\&tqId=11167\&rp=2\&ru=/activity/oj\&qru=/ta/coding-interviews/question-ranking

思路

使用快慢指针(双指针),让快指针先走k步,然后快慢指针一起移动,当快指针走到末尾时,慢指针正好指向倒数第k个节点。

code

java 复制代码
import java.util.*;
/*
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 null;//head为空
        if(k<=0) return null;//k不合法
        
        ListNode fast=head;
        ListNode slow=head;
        int count=0;
        while(count!=k){
            if(fast!=null){
                fast=fast.next;
                count++;
            }else{
                return null;//k超出链表的个数
            }
        }
     
        while(fast!=null){
            fast=fast.next;
            slow=slow.next;
        }
        return slow;
    }
}
相关推荐
一轮弯弯的明月2 小时前
有序整数对个数-欧拉函数
java·算法·蓝桥杯·学习心得
dazzle3 小时前
机器学习算法原理与实践-入门(十):基于PaddlePaddle框架的线性回归
算法·机器学习·paddlepaddle
2501_940315263 小时前
【无标题】1.用哈希表做两数之和
算法·哈希算法·散列表
计算机安禾3 小时前
【数据结构与算法】第20篇:二叉树的链式存储与四种遍历(前序、中序、后序、层序)
c语言·开发语言·数据结构·c++·学习·算法·visual studio
菜菜的顾清寒3 小时前
力扣HOT100(16)除了自身以外数组的乘积
算法·leetcode·职场和发展
sali-tec3 小时前
C# 基于OpenCv的视觉工作流-章45-圆卡尺
图像处理·人工智能·opencv·算法·计算机视觉
会编程的土豆3 小时前
【数据结构与算法】二叉树遍历 集合
数据结构·算法
老虎06273 小时前
LeetCode热题100 刷题笔记(第六天)双指针 「 盛最多水的容器」
笔记·算法·leetcode
ZPC82103 小时前
fanuc 机器人 pr 寄存器数据如何绑定 GO 绑定DO
人工智能·算法·机器人