首页 > 试题广场 >

在链表中删除倒数第K个节点

[编程题]在链表中删除倒数第K个节点
  • 热度指数:4019 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给出一个单链表,返回删除单链表的倒数第 K 个节点后的链表

输入描述:
第一行输入两个正整数 n, K ,分别表示链表的长度和要删除单链表倒数第K个节点。
接下来一行有 n 个整数,依次表示单链表中的各个节点的节点值val。


输出描述:
在给定的函数内返回删除倒数第K个节点后的链表的头指针。
示例1

输入

5 4
1 2 3 4 5

输出

1 3 4 5

备注:

头像 gaya
发表于 2021-02-05 19:43:33
删除节点时候,需要判断K的合法性(我没做判断),不过程序为啥跑的这么慢>< import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class 展开全文
头像 我要出去乱说
发表于 2022-06-26 10:28:39
1、思路 书中描述的方法稍显复杂,这里用一种更简单的思路: 快慢指针指向头结点,快指针先往前移动K步; 若快指针遍历完链表后,K大于0,表示K的值已经超过了链表本身的长度,即不存在倒数第K个节点; 快慢指针同时往前走,快指针走到链表尾部时,慢指针所指的就是倒数第K个节点。因为慢指针比快指针少走 展开全文
头像 简笔话_Golden
发表于 2020-04-02 23:36:23
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * @描述: * @思路: * @复杂度: 链表长度为N,要删除倒数第K个节点;最重要就是定位到它 展开全文
头像 lssts
发表于 2022-10-20 16:05:11
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import&nb 展开全文
头像 泡泡爱上巧克力201710231836186
发表于 2025-09-10 20:06:40
package main import ( "bufio" "fmt" "os" "strconv" ) type LinkNode struct { Val int Next *LinkNode } 展开全文