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 相关文章推荐
快速配置PHPMyAdmin方法
Jun 05 PHP
让PHP开发者事半功倍的十大技巧小结
Apr 20 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
php cli 小技巧
Jun 03 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
Mar 02 PHP
PHP动态柱状图实现方法
Mar 30 PHP
Thinkphp实现自动验证和自动完成
Dec 19 PHP
php curl常用的5个经典例子
Jan 20 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
PHP数组访问常用方法解析
Sep 05 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
Dec 01 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在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
PHP内核探索:变量存储与类型使用说明
2014/01/30 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
2016/06/15 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
Vue的双向数据绑定实现原理解析
2020/02/17 Javascript
Web服务器框架 Tornado简介
2014/07/16 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
Python反射用法实例简析
2017/12/22 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
Django自定义过滤器定义与用法示例
2018/03/22 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
学生信息管理系统python版
2018/10/17 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
parser.add_argument中的action使用
2020/04/20 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
CSS3中的常用选择器使用示例整理
2016/06/13 HTML / CSS
毕业生简单求职信
2013/11/19 职场文书
纺织工程专业个人求职信范文
2014/01/27 职场文书
群众路线党课主持词
2014/04/01 职场文书
优秀学生干部先进事迹材料
2014/05/26 职场文书
艾滋病宣传标语
2014/06/25 职场文书
民用住房租房协议书
2014/10/29 职场文书
员工辞职信范文
2015/03/02 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
浅谈Java父子类加载顺序
2021/08/04 Java/Android