首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
链表中倒数第k个结点
[编程题]链表中倒数第k个结点
热度指数:1294185
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 64M,其他语言128M
算法知识视频讲解
输入一个链表,输出该链表中倒数第k个结点。
示例1
输入
1,{1,2,3,4,5}
输出
{5}
说明:本题目包含复杂数据结构ListNode,
点此查看相关信息
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(13)
邀请回答
收藏(1771)
分享
提交结果有问题?
1898个回答
117篇题解
开通博客
牛客题解官
发表于 2020-05-29 15:12:08
精华题解
描述 这是一篇针对初学者的题解。用2种方法解决。知识点:链表,链表的快慢指针难度:一星 题解 方法一:普通解法 很显然,求倒数第k个,可以转换成求正数第多少个呢?看个例子:假设有5个节点,序号1表示第1个节点,假设求倒数第K个,那么正数就应该是从头结点开始往后推(n-k)个,n自然代表所有节点的个
展开全文
把牛妹带回家
发表于 2019-07-26 15:51:09
快慢指针 快指针先往前走k步,注意判断边界,然后快慢一起走,当快指针为none的时候,慢指针走到了倒数第k个节点 class Solution: def FindKthToTail(self, head, k): # write code here slow,
展开全文
oweny
发表于 2019-09-04 16:35:22
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution {
展开全文
南宫雨雪
发表于 2020-01-27 21:37:34
问题分析:倒数第k个,就是正向的n(链表的长度)-k-1 代码如下:
Janebook2019
发表于 2019-08-13 21:20:10
推荐方法链接:https://www.nowcoder.com/questionTerminal/529d3ae5a407492994ad2a246518148a?f=discussion > public ListNode FindKthToTail(ListNode head,int k
展开全文
心谭
发表于 2020-01-12 00:35:14
【数值的整次方】【2种解法】【剑指offer】 题目描述 输入一个链表,输出该链表中倒数第 k 个结点。 🔍 关注公众号“心谭博客” / 👉 前往 xxoo521.com 查看更多前端与算法的系列文章,获得更好阅读体验 解法 1: 两次循环 因为要求链表倒数第 k 个节点,也就是求正数第le
展开全文
云小逸0987
发表于 2022-10-01 20:28:28
在本篇文章里,我将分享一道很经典的算法题———链表中倒数第k个结点,并且分享解题思路,希望可以帮助到你😀😀😀 以下代码均经过牛客测试,均正确,请放心测试😊😊😊 解题思路: 这是一道经典的快慢指针问题,设置一对快慢
展开全文
一叶浮尘
发表于 2020-03-22 20:00:54
输入一个链表,输出该链表中倒数第k个结点。 仅仅用一个指针进行遍历注定是没有办法很优美地实现此问题解答的,所以要用两个指针,这两个指针的位置相差k-1个距离,当快指针走到最后一个节点的时候,慢指针指向的位置就是我们要的倒数第k个节点了。思想就是这么简单了,很多链表类的题目都是活用指针就可以解决的,
展开全文
法拉利201903231900848
发表于 2019-08-30 01:38:02
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # &
展开全文
jalr4ever
发表于 2019-08-25 22:32:12
剑指 - 链表中倒数第k个结点 题目 输入一个链表,输出该链表中倒数第k个结点。 思路 两种方案,不过空间复杂度都为 O(n),可以考虑一种计数后再次遍历,空间复杂度 O(1),但写起来比较麻烦,这里就记录比较容易实现和理解的两种方案了 public class LinkListKthNode {
展开全文
倚天拔地
发表于 2020-04-14 18:07:52
程序特点:利用了try catch语句处理了输入的链表长度小于k的情况,并且这样避免了if语句。 public class Solution { public ListNode FindKthToTail(ListNode head,int k) { ListNode ele
展开全文
问题信息
链表
双指针
难度:
1898条回答
1771收藏
200559浏览
热门推荐
通过挑战的用户
李勇震
2023-03-13 21:36:48
牛客44550...
2023-03-11 17:51:25
lssIJK
2023-03-11 14:42:10
可实习6个月立即到岗
2023-03-11 10:07:11
几冬雪来
2023-03-07 17:14:34
相关试题
最小面积子矩阵
动态规划
双指针
前缀和
评论
(44)
神奇的数字
排序
双指针
评论
(46)
和为S的两个数字
数组
数学
双指针
评论
(1511)
来自
“一战通offer”互联...
3.1996至2003年间,从事高...
资料分析
言语理解与表达
资料分析
评论
(1)
电路板布线的时候尽量采用( )折线布线
PCB
评论
(1)
链表中倒数第k个结点
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
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) { } }
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { } };
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def FindKthToTail(self, head, k): # write code here
/* public class ListNode { public int val; public ListNode next; public ListNode (int x) { val = x; } }*/ class Solution { public ListNode FindKthToTail(ListNode head, int k) { // write code here } }
/*function ListNode(x){ this.val = x; this.next = null; }*/ function FindKthToTail(head, k) { // write code here } module.exports = { FindKthToTail : FindKthToTail };
val = $x; } }*/ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param k int整型 * @param head ListNode类 * @return ListNode类 */ function FindKthToTail( $k , $head ) { // write code here }
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def FindKthToTail(self, head, k): # write code here
package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * * @param pListHead ListNode类 * @param k int整型 * @return ListNode类 */ func FindKthToTail( pListHead *ListNode , k int ) *ListNode { // write code here }
/** * struct ListNode { * int val; * struct ListNode *next; * }; */ /** * * @param pListHead ListNode类 * @param k int整型 * @return ListNode类 */ struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) { // write code here }
# class ListNode # attr_accessor :val, :next # # def initialize(val = 0, _next = nil) # @val, @next = val, _next # end # end # # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # @param k int整型 # @param head ListNode类 # @return ListNode类 # class Solution def FindKthToTail(k, head) # write code here end end
/** * class ListNode(var val: Int) { * var next: ListNode = null * } */ object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param k int整型 * @param head ListNode类 * @return ListNode类 */ def FindKthToTail(k: Int,head: ListNode): ListNode = { // write code here } }
/** * class ListNode(var `val`: Int) { * var next: ListNode? = null * } */ object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param k int整型 * @param head ListNode类 * @return ListNode类 */ fun FindKthToTail(k: Int,head: ListNode?): ListNode? { // write code here } }
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param k int整型 * @param head ListNode类 * @return ListNode类 */ public ListNode FindKthToTail (int k, ListNode head) { // write code here } }
/*class ListNode { * val: number * next: ListNode | null * constructor(val?: number, next?: ListNode | null) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param k int整型 * @param head ListNode类 * @return ListNode类 */ export function FindKthToTail(k: number, head: ListNode): ListNode { // write code here }
/** * public class ListNode { * public var val: Int * public var next: ListNode? * public init(_ val: Int = 0, _ next: ListNode? = nil) { * self.val = val * self.next = next * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param k int整型 * @param head ListNode类 * @return ListNode类 */ func FindKthToTail ( _ k: Int, _ head: ListNode?) -> ListNode? { // write code here } }
/** * #[derive(PartialEq, Eq, Debug, Clone)] * pub struct ListNode { * pub val: i32, * pub next: Option
> * } * * impl ListNode { * #[inline] * fn new(val: i32) -> Self { * ListNode { * val: val, * next: None, * } * } * } */ struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param k int整型 * @param head ListNode类 * @return ListNode类 */ pub fn FindKthToTail(&self, k: i32, head: Option
>) -> Option
> { // write code here } }
1,{1,2,3,4,5}
{5}