首页 > 其他分享 >链表中倒数第K个节点 剑指offer

链表中倒数第K个节点 剑指offer

时间:2024-12-09 21:28:16浏览次数:8  
标签:ListNode offer pListHead 倒数第 链表 节点 输入

题目描述

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

链表节点的定义如下:

struct ListNode
{
    int m_n Value;
    ListNode*m_pNext;
};

代码实现

存在3个漏洞版

 存在3个潜在崩溃的风险。

1、当输入的pListHead为空指针;

2、输入的pListHead为头节点的链表的节点总数少于k;

3、输入的参数k为0。

正确的代码实现

测试用例

本题考点

相关题目

举一反三

标签:ListNode,offer,pListHead,倒数第,链表,节点,输入
From: https://blog.csdn.net/2301_78353179/article/details/144358153

相关文章

  • 114. 二叉树展开为链表
    问题描述给你二叉树的根结点root,请你将它展开为一个单链表:展开后的单链表应该同样使用TreeNode,其中right子指针指向链表中下一个结点,而左子指针始终为null。展开后的单链表应该与二叉树先序遍历顺序相同。分析注意,这里应该使用同样的TreeNode,也就是评判时,直接看原......
  • 大数据-245 离线数仓 - 电商分析 缓慢变化维 与 拉链表 SCD Slowly Changing Dimensio
    点一下关注吧!!!非常感谢!!持续更新!!!Java篇开始了!目前开始更新MyBatis,一起深入浅出!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(已更完)Kudu(......
  • 数据结构与算法之美:单链表
            Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!我的博客:<但凡.我的专栏:《数据结构与算法之美》、《编程之路》、《题海拾贝》欢迎点赞,关注!目录 1、什么是链表2、链表的实现(C语言)2.1节点的初始化2.2节点的打印2.3节点的插入......
  • 每日力扣打卡143.重排链表
    题目:给定一个单链表L的头节点head,单链表L表示为:L0→L1→…→Ln-1→Ln请将其重新排列后变为:L0→Ln→L1→Ln-1→L2→Ln-2→…不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例1:输入:head=[1,2,3,4]输出:[1,4,2,3]示......
  • 基于链表的定时器管理(三)
    5.启动定时器(timer_start)(工作中经常用到)timer_start函数接收定时器的过期时间和回调函数,并将定时器节点插入到定时器链表中。inttimer_start(timer_list_t*timer_list,timer_node_t*timer_node,UINT32expire_time,......
  • 环形链表 (简单易懂)
    给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从0开始)。注意:pos 不作为参数进行传递 。仅仅是为......
  • 力扣每日打卡 92.反转链表II
    题目:给你单链表的头指针head和两个整数left和right,其中left<=right。请你反转从位置left到位置right的链表节点,返回反转后的链表。示例:输入:head=[1,2,3,4,5],left=2,right=4输出:[1,4,3,2,5]提示:链表中节点数目为n1<=n<=500-500<=Node.......
  • 实现简单链表
    #include<stdio.h>structstu {   intage;   charname[20];   structstu*next;};intmain(){   structstus1={20,"zhangsan",NULL};   structstus2={21,"lisi",NULL};   structstus3={28,"wang",......
  • 两两交换链表中的节点
    使用递归法,头节点和它后面的节点互换位置,然后指针指向头节点后面的后面的节点,继续调用该函数,直到指针指向空。/**Definitionforsingly-linkedlist.structListNode{intval;ListNode*next;ListNode():val(0),next(nullptr){}ListNode(intx):val(x)......
  • 请使用 js 实现一个双向链表
    classNode{constructor(data){this.data=data;this.prev=null;this.next=null;}}classDoublyLinkedList{constructor(){this.head=null;this.tail=null;this.length=0;}//Addanodetotheendofthe......