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 相关文章推荐
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
PHP开发过程中常用函数收藏
Dec 14 PHP
php cout&amp;lt;&amp;lt;的一点看法
Jan 24 PHP
Youku 视频绝对地址获取的方法详解
Jun 26 PHP
Laravel 5框架学习之表单
Apr 08 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
Nov 18 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
微信支付PHP SDK ―― 公众号支付代码详解
Sep 13 PHP
PHP微信PC二维码登陆的实现思路
Jul 13 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
Oct 03 PHP
laravel通用化的CURD的实现
Dec 13 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
Dec 13 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数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
一步一步学习PHP(6) 面向对象
2010/02/16 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
2018/05/21 PHP
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
动态创建样式表在各浏览器中的差异测试代码
2011/09/13 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
jquery+css+ul模拟列表菜单具体实现思路
2013/04/15 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
2017/01/10 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
vue-loader教程介绍
2017/06/14 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
jQuery实现简单聊天室
2020/02/08 jQuery
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
Python3进制之间的转换代码实例
2019/08/24 Python
python3 反射的四种基本方法解析
2019/08/26 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
检测用户浏览器是否支持CSS3的方法
2009/08/29 HTML / CSS
大学生职业生涯规划书范文
2014/01/04 职场文书
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
QQ空间主人寄语大全
2014/04/12 职场文书
班干部演讲稿
2014/04/24 职场文书
公司任命书模板
2014/06/06 职场文书
学校运动会报道稿
2014/09/23 职场文书
四年级小学生评语
2014/12/26 职场文书
2015年人事科工作总结
2015/04/28 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书