程序员面试金典:02.02. 返回倒数第 k 个节点

简介: 程序员面试金典:02.02. 返回倒数第 k 个节点

1. 题目

面试题 02.02. 返回倒数第 k 个节点


2. 描述

实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。


注意:本题相对原题稍作改动


示例:


输入: 1->2->3->4->5 和 k = 2


输出: 4


说明:


给定的 k 保证是有效的。


3. 实现方法

3.1 方法 1

3.1.1 思路

设有两个指针 fast, slow 指向 head;

先将 fast 向后移动 k 次,此时 fast,slow 的距离为 k;

接着同时移动 fast,slow 直到 fast 指向 null;

此时slow.val 即为答案;

3.1.2 实现


public int kthToLast(ListNode head, int k) {
    // 初始化两个指针 fast,slow 指向 head
    ListNode slow = head;
    ListNode fast = head;
    // fast 先向后移动 k 个距离,然后 fast, slow 距离为 k
    for(int i = 0; i < k; i++){
        fast = fast.next;
    }
    // 同时移动 fast,slow 直到 fast 指向 null
    while(fast != null){
        slow = slow.next;
        fast = fast.next;
    }
    return slow.val;
}
目录
相关文章
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】 GBDT面试题:其中基分类器CART回归树,节点的分裂标准是什么?与RF的区别?与XGB的区别?
文章讨论了梯度提升决策树(GBDT)中的基分类器CART回归树的节点分裂标准,并比较了GBDT与随机森林(RF)和XGBoost(XGB)的区别,包括集成学习方式、偏差-方差权衡、样本使用、并行性、最终结果融合、数据敏感性以及泛化能力等方面的不同。
580 1
|
JSON NoSQL MongoDB
面试题MySQL问题之想使用Neo4j查询可变数量的关系节点如何解决
面试题MySQL问题之想使用Neo4j查询可变数量的关系节点如何解决
369 1
【一刷《剑指Offer》】面试题 15:链表中倒数第 k 个结点
【一刷《剑指Offer》】面试题 15:链表中倒数第 k 个结点
|
算法 程序员 索引
【Leetcode 程序员面试金典 02.08】 —— 环路检测 |双指针
我们可以使用双指针解决本题,由数学推导可知:a 的距离为(环长度的倍数 - b),即 tmp 指针从头节点走到环开头节点等于 slow 指针走到环开头节点的距离
|
Java 程序员
【Leetcode 程序员面试金典 05.01】插入 —— 位运算
位运算问题,只需要把 N 的 i 到 j 位都置 0 后再和 M 左移 i 位的结果进行按位或即可
LeetCode | 面试题 02.02. 返回倒数第 k 个节点
LeetCode | 面试题 02.02. 返回倒数第 k 个节点
|
算法
面试题 02.03:删除中间节点
面试题 02.03:删除中间节点
110 0
|
算法
面试题 02.02:返回倒数第 k 个节点
面试题 02.02:返回倒数第 k 个节点
116 0
面试题 02.01:移除重复节点
面试题 02.01:移除重复节点
148 0
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_36 树节点
「SQL面试题库」 No_36 树节点