剑指 Offer 22. 链表中倒数第k个节点(golang版)

单链表:链表中倒数第k个节点 单链表中倒数第k个节点 题目:       输入一个链表,输出该链表中倒数第k个结点。 示例:       1->2->3->4->5->6,输出倒数第3个结点,输出结果为:4。 思路一: 使用双指针。              & 阅读详情
  • 题目描述
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。

例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。`在这里插入代码片`

示例:
给定一个链表: 1->2->3->4->5, 和 k = 2.
返回链表 4->5.

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
  • 思路
    1、先遍历一遍链表求链表长度,然后减去K值,再从头遍历到差值即可
    2、使用快慢指针也行

  • 代码:

func getKthFromEnd(head *ListNode, k int) *ListNode {
	var len , root = 0, head

	for  {
		if root == nil{
			break
		}
		len ++
		root = root.Next
	}

	for i:=0; i<len-k; i++ {
		head = head.Next
	}
	return head
}

测试代码:

package main

import "fmt"

type ListNode struct {
	Val int
	Next *ListNode
}

func main() {
	//创建链表
	list := []int{1,2,3,4,5}
	root := &ListNode{Val:list[0]}
	tail := root
	for i:=1;i<len(list);i++ {
		tail.Next = &ListNode{Val:list[i]}
		tail = tail.Next
	}

	//执行程序
	root = getKthFromEnd(root,2)

	//输出结果
	for  {
		if root == nil{
			break
		}
		fmt.Println(root.Val)
		root = root.Next
	}

}


func getKthFromEnd(head *ListNode, k int) *ListNode {
	var len , root = 0, head

	for  {
		if root == nil{
			break
		}
		len ++
		root = root.Next
	}

	for i:=0; i<len-k; i++ {
		head = head.Next
	}
	return head
}
剑指offer所有编程练习总结分析 给出剑指offer所有题目描述和对应的解题思路,并且在最有给出对应的代码展示和测试内容 由于牛客剑指Offer题目经过整理和筛选,是面试备考的经典资源之一,因此它的重要性在面试准备过程中是很高的。做这些题目可以帮助面试者熟悉常见的面试题型、巩固基础知识、提升编程能力,为应对面试提供了很好的准备。然而,还需注意不仅仅局限于做题,理解背后的原理和思想同样重要,以便能够在面试时灵活运用和展示自己的能力。 阅读详情

相关推荐

怎样找到链表倒数第k个元素

题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。 分析:使用两个指针,low,fast,先把fast的指针指向第k个元素,然后low和fast同时向后遍历,当fast遍历到结尾时,low正好遍历到倒数第k个。

【LeetCode】剑指 Offer 22. 链表中倒数第k个节点 - Go 语言题解

文章目录一、题目描述二、我的题解1. 方法一:两次遍历2. 方法二:双指针三、一点讨论 一、题目描述 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 二、我的题解 1. 方法一

weixin_44211968的博客 481

航天仿真必看:如何用SOFA库实现高精度GCRS-ITRS坐标转换?避坑指南

本文深入解析了航天仿真中高精度GCRS-ITRS坐标转换的关键技术,重点介绍了SOFA库在天球系与轨道系转换中的权威应用。通过对比传统方法的误差来源,详细阐述了SOFA库的转换算法优势、工程实现步骤及误差控制策略,为航天器轨道仿真提供毫米级精度的解决方案。

7h6j5k4l3的博客 850

剑指Offer22:链表中倒数第k个节点(Golang/Python/C#)

剑指 Offer 22. 链表中倒数第k个节点

水资源领域的程序猿 158

SIwave仿真手册——信号完整性仿真之S参数的提取(二)

上一篇简单了讲述了软件的各个操作界面,本次博客更新关于的仿真,因为第二章完整的内容比较多,所以分成好几篇博客进行分享。

luohuo9844的博客 1万+

什么是 SAP Build Process Automation?

SAP Build Process Automation 是一款综合性的低代码工具,允许企业用户快速开发和自动化端到端业务流程。它整合了工作流管理、任务自动化和人工智能技术,提供了一个易于使用的平台,帮助企业更好地应对现代商业挑战。通过该工具,用户无需具备深厚的编程技能即可创建复杂的业务流程。例如,用户可以使用直观的拖放式界面设计流程、设置触发条件、定义任务分配规则,并通过内置的分析功能对流程效率进行评估。流程建模与设计:提供图形化界面,帮助用户直观地设计业务流程。任务自动化。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1260

程序员面试题精选(9):查找链表中倒数第k个结点

题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下:struct ListNode{      int       m_nKey;      ListNode* m_pNext;};分析:为了得到倒数第k个结点,很自然的想法是先走到链表的尾端,再从尾端回溯k步。可是输入的是单向链表,只有从前往后的指针而没有从后往前的指针。因此我们需要打

yysdsyl的专栏 2577

Ollama + OpenCLAW 在 Windows 系统的完整部署指南

Windows 部署优先选 WSL2,避免原生环境的权限/兼容性问题;网络问题通过“离线包+国内镜像”解决,版本问题通过升级 Node.js 解决;内存不足可切换轻量模型或增大 WSL2 内存分配;核心链路:Ollama(模型管理)→ Gateway(网关)→ OpenCLAW TUI(交互),各组件启动正常即可稳定使用。

lpfasd123的博客 2824

链表面试题及其解析

实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。1->2->3->4->5 和k= 24给定的k保证是有效的。

Aa_159147的博客 1182

这20个网络工程项目经验,帮我跳槽加薪不止一次

嘿,大家好,我是圈圈,一个在网络工程圈子里混了十多年的老鸟。从国企的网管起步,到现在给大厂做顾问,我见过太多简历:有的光鲜亮丽,证书一堆,但一聊项目,就露怯;有的简历朴实,但列出的项目经验让人眼前一亮,直接拿offer。为什么?因为招聘官最看重实战。理论谁都会背,项目经验才是你的“硬通货”。尤其在网络工程这行,项目不光证明你的技能,还展示你解决问题的能力。今天,我就分享20个我亲身经历或见过的网络工程项目经验。每个都值得写进简历,不是吹牛,这些项目帮我跳槽加薪不止一次。

网络技术联盟站 433

SAPIEN ManiSkill3 入门教程(一)

请注意,table.set_pose(pose) 设置的是演员在世界帧中的坐标系姿势。移除的实体可以再次添加到场景中,但已在场景中的实体则不能再次添加。显示器可以是物理的(如显示器),也可以是虚拟的(如 VNC)。我们可以通过 get_pose()、get_linear_velocity() 和 get_angular_velocity()获取演员的运动量(姿势、线速度、角速度)。现在,让我们创建一个斜坡。例如,您可能需要一个简单的碰撞形状来进行快速模拟,但却需要一个复杂的视觉形状来进行逼真的渲染。

机器人控制与仿真应用 3075

【Golang】LeetCode-剑指Offer-面试题22-链表中倒数第k个节点

题目 输入一个链表,输出该链表中倒数第k个节点。 注意:为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。 这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 来源:力扣(...

士多啤梨先生の博客 359

车载以太网-TC8测试

TC8测试的用例数量 TC8测试基本流程 TC8测试内容

天赐好车的博客 3619

剑指offer-22-链表中倒数第k个节点-golang

题目:输入一个链表,输出该链表中倒数第k个节点。

程序员进化者 182

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

剑指Offer22.链表中倒数第k个节点 Go语言AC笔记

AC高频面试题——链表中倒数第k个节点,Golang实现。

Hexa_H的博客 147

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Go语言算法之旅:剑指 Offer 22. 链表中倒数第k个节点

输入一个链表,输出该链表中倒数第k个节点。 利用快慢指针的思想。将第一个指针 fast 指向链表的第 k + 1 个节点,第二个指针 slow 指向链表的第一个节点,此时指针 fast 与 slow 之间刚好间隔 k 个节点。此时两个指针同步向后走,当第一个指针 fast 走到链表的尾部空节点时,则此时 slow 指针刚好指向链表的倒数第 k 个节点。 /** * Definition for singly-linked list. * type ListNode struct { * Val

qq_40745985的博客 595

LeetCode-剑指 Offer 22. 链表中倒数第k个节点(Goland实现)

LeetCode题号:剑指 Offer 22. 链表中倒数第k个节点 问题描述: 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 思路:创建一个额外的数组存储链表...

**My Coding Family** 635

【LeetCode刷题日记】链表类题目常见题型_leetcode链表题型分类(1)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fh055srO-1631410080353)(https://raw.githubusercontent.com/xkyvvv/blogpic/main/pic1/image-20210905204858264.png)]

797

剑指offer:面试题22:链表中倒数第k个节点

剑指offer:面试题22:链表中倒数第k个节点,更高效的方法

m0_63001277的博客 262

【算法leetcode】剑指 Offer 22. 链表中倒数第k个节点(多语言实现)

输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。 ...

二当家的白帽子 333

剑指 Offer II 021:删除链表的倒数第 n 个结点(快慢指针一趟扫描)

本文以 doocs/leetcode 仓库中《剑指 Offer(第 2 版)》系列题目「剑指 Offer II 021. 删除链表的倒数第 n 个结点」为核心,讲解单链表删除倒数第 n 个结点的完整解法:从两次遍历的朴素思路,到借助虚拟头结点与快慢指针实现一趟扫描的进阶方案,并给出 Python、Java、C++、Go、JavaScript、Ruby、Swift 七种语言的仓库级实现。读完本文,你

gitblog_00989的博客 854

interview-go 实战:链表中倒数最后 k 个结点——Go 双指针(快慢指针)解法全解析

本文基于 interview-go 仓库的链表专题文档,深入讲解经典面试题「链表中倒数最后 k 个结点」的完整求解过程。你将掌握一种**只需遍历一次链表、空间复杂度 O(1)** 的双指针(快慢指针)解法,理解其数学原理、边界条件处理,并结合仓库源码与姊妹题「删除链表的倒数第 n 个节点」进行对比印证,达到面试中举一反三的效果。 ## 题目描述 输入一个长度为 n 的链表,设链表中的元素的值为

gitblog_00854的博客 628

剑指Offer22. 链表中第k个节点Golang版

剑指Offer22. 链表中第k个节点Golang版 1. 问题描述 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 2. 思路 遍历链表求出长度 求第len-k+1个节点 3.

菜到不敢run 170

剑指offer面试题22. 链表中倒数第k个节点

题目 https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/ 思路 考点: 1、链表的遍历 易错点: 1、dummyHead的设置 2、第二个循环是否判断数字的大小 class Solution { public ListNode getKthFromEnd(ListNode head, ...

WenHaiGo的博客 435

剑指 Offer 22. 链表中倒数第k个节点

剑指 Offer 22. 链表中倒数第k个节点 题目描述 链接: leetcode876. 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 题解 快慢指针,让快指针先走 k 步,然

weixin_43847940的博客 108
上一篇: 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面(golang版)
下一篇: 剑指 Offer 24. 反转链表(golang版)
l_mofi
博客等级 码龄9年 7粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值