PHP获取链表中倒数第K个节点的方法


Posted in PHP onJanuary 18, 2018

本文实例讲述了PHP获取链表中倒数第K个节点的方法。分享给大家供大家参考,具体如下:

问题

输入一个链表,输出该链表中倒数第k个结点。

解决思路

注意这个题目是返回节点,而不是返回值。返回值的话可以用栈来存储。返回节点则不能这样做。

设置两个指针,先让第一个指针移动k-1次。然后两个指针同时移动,当第一个指针到达最后一个节点,第二个指针就在倒数第k个节点。

注意边界:K长度可能超出链表长度,所以当第一个指针的next为空时,返回null

实现代码

<?php
/*class ListNode{
 var $val;
 var $next = NULL;
 function __construct($x){
  $this->val = $x;
 }
}*/
function FindKthToTail($head, $k)
{
 if($head == NULL || $k ==0)
  return NULL;
 $pre = $head;
 $last = $head;
 for($i=1; $i<$k; $i++){
  if($last->next == NULL)
   return NULL;
  else
   $last = $last->next;
 }
 while($last->next != NULL){
  $pre = $pre->next;
  $last = $last->next;
 }
 return $pre;
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
APMServ使用说明
Oct 23 PHP
MySQL数据源表结构图示
Jun 05 PHP
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 PHP
php入门学习知识点二 PHP简单的分页过程与原理
Jul 14 PHP
删除html标签得到纯文本可处理嵌套的标签
Apr 28 PHP
PHP列出MySQL中所有数据库的方法
Mar 12 PHP
PHP中实现crontab代码分享
Mar 26 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
简单实现php上传文件功能
Sep 21 PHP
Ubuntu上安装yaf扩展的方法
Jan 29 PHP
PHP7 mongoDB扩展使用的方法分享
May 02 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
May 05 PHP
PHP获取二叉树镜像的方法
Jan 17 #PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 #PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 #PHP
PHP实现找出链表中环的入口节点
Jan 16 #PHP
详解thinkphp中的volist标签
Jan 15 #PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
Jan 15 #PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 #PHP
You might like
php 分库分表hash算法
2009/11/12 PHP
php生成扇形比例图实例
2013/11/06 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
PHP易混淆知识整理笔记
2015/09/24 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
动态加载js的几种方法
2006/10/23 Javascript
JavaScript中常用的运算符小结
2012/01/18 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
[02:17]DOTA2亚洲邀请赛 RAVE战队出场宣传片
2015/02/07 DOTA
在Python的列表中利用remove()方法删除元素的教程
2015/05/21 Python
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
python实现公司年会抽奖程序
2019/01/22 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
手机销售员岗位职责
2015/04/11 职场文书
法院答辩状格式
2015/05/22 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书
logback如何自定义日志存储
2021/08/30 Java/Android
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers
Python可视化神器pyecharts绘制水球图
2022/07/07 Python
python 镜像环境搭建总结
2022/09/23 Python