当前位置: 首页 > news >正文

面试题15:链表中倒数第k个结点

题目:输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如

一个链表有6个结点,从头结点开始它们的值一次是1、2、3、4、5、6.这个链表的倒数第3个结点是值为4的结点。

链表结点定义如下:

struct ListNode
{
      int val;
      ListNode* next;
}
 1 ListNode* findKthToTail(ListNode* head, int k)
 2 {
 3     ListNode* p = head;
 4     ListNode* q = head;
 5     if (head == NULL || k == 0)
 6         return NULL;
 7     //q向前走k-1步
 8     for (int i = 1; i < k; ++i)
 9     {
10         if (q)
11             q = q->next;
12         else
13             return NULL;
14     }
15     while (q->next)
16     {
17         p = p->next;
18         q = q->next;
19     }
20     return p;
21 }

本题需要注意代码的鲁棒性,即需要注意当head为空,k为0,或者k的值过大时的情况。

 

转载于:https://www.cnblogs.com/happygirl-zjj/p/4616138.html

相关文章:

  • 游标cursor
  • 反转链表
  • kettle菜鸟学习笔记2----第一个kettle转换的建立及执行
  • shell script 入门 笔记
  • Dynamics AX 2012 R2 客制化RDP报表参数对话框
  • BZOJ 1052 HAOI2007 覆盖问题 二分法答案+DFS
  • Alwasyon环境下增加数据文件需要注意的几点
  • 学习笔记_过滤器概述(过滤器JavaWeb三大组件之一)
  • ldd查询命令或软件共享的函数库(动态)
  • 员工考勤系统
  • C# 打印本地PDF文件
  • javascript的位操作、整数、二进制
  • .net 按比例显示图片的缩略图
  • 线上解决问题分析
  • JavaScript定时机制setTimeout与setInterval研究
  • Brief introduction of how to 'Call, Apply and Bind'
  • Bytom交易说明(账户管理模式)
  • Date型的使用
  • JavaScript创建对象的四种方式
  • Java基本数据类型之Number
  • js ES6 求数组的交集,并集,还有差集
  • rabbitmq延迟消息示例
  • React Native移动开发实战-3-实现页面间的数据传递
  • react-native 安卓真机环境搭建
  • React组件设计模式(一)
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • Vue官网教程学习过程中值得记录的一些事情
  • 分布式事物理论与实践
  • 基于 Babel 的 npm 包最小化设置
  • 前端之React实战:创建跨平台的项目架构
  • 算法之不定期更新(一)(2018-04-12)
  • 提醒我喝水chrome插件开发指南
  • 智能合约Solidity教程-事件和日志(一)
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • Spring Batch JSON 支持
  • ​2020 年大前端技术趋势解读
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #include<初见C语言之指针(5)>
  • #pragma once与条件编译
  • (27)4.8 习题课
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (剑指Offer)面试题34:丑数
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)Linq学习笔记
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • *1 计算机基础和操作系统基础及几大协议
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET Core引入性能分析引导优化
  • .Net 路由处理厉害了