【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;
    }
}
相关推荐
老鱼说AI14 分钟前
现代 LangChain 开发指南:从 LCEL 原理到企业级 RAG 与 Agent 实战
java·开发语言·人工智能·深度学习·神经网络·算法·机器学习
小许同学记录成长34 分钟前
基于幅度形态与参数聚类的工作模式判别
python·算法·scikit-learn
gumichef1 小时前
二叉树_堆
算法
Liangwei Lin1 小时前
LeetCode 70. 爬楼梯
算法
洛水水1 小时前
【力扣100题】38.路径总和 III
算法·leetcode·深度优先
小侯不躺平.1 小时前
C++ Boost库【2】 --stringalgo字符串算法
linux·c++·算法
流年如夢2 小时前
二叉树详解
c语言·数据结构·算法
xiaoxiaoxiaolll2 小时前
Nature Communications:三维超原子库+原子层保护,突破全彩VR超透镜量产瓶颈
人工智能·算法
仍然.2 小时前
算法题目---栈
算法
feifeigo1232 小时前
基于布谷鸟算法的配电网分布式电源选址定容 MATLAB 实现
开发语言·算法·matlab