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 相关文章推荐
php array_merge下进行数组合并的代码
Jul 22 PHP
PHP中文URL编解码(urlencode()rawurlencode()
Jul 03 PHP
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
初学PHP的朋友 经常问的一些问题。不断更新
Aug 11 PHP
提高PHP编程效率的方法
Nov 07 PHP
CI框架开发新浪微博登录接口源码完整版
May 28 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
PHP类的封装与继承详解
Sep 29 PHP
PHP中Laravel 关联查询返回错误id的解决方法
Apr 01 PHP
Bootstrap+PHP实现多图上传功能实例详解
Apr 08 PHP
PHP中__set()实例用法和基础讲解
Jul 23 PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 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
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
jQuery中append()方法用法实例
2015/01/08 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
Angular.Js之Scope作用域的学习教程
2017/04/27 Javascript
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
javascript函数的节流[throttle]与防抖[debounce]
2017/11/15 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
vue3中轻松实现switch功能组件的全过程
2021/01/07 Vue.js
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Python sys.path详细介绍
2013/10/17 Python
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
python实现的简单文本类游戏实例
2015/04/28 Python
Python简单计算文件夹大小的方法
2015/07/14 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
PyCharm 常用快捷键和设置方法
2017/12/20 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
浅析python中的del用法
2020/09/02 Python
python -v 报错问题的解决方法
2020/09/15 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
区域总监的岗位职责
2013/11/21 职场文书
给女朋友的道歉信
2014/01/10 职场文书
上课迟到检讨书100字
2014/01/11 职场文书
求职个人评价范文
2014/04/09 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
2014年银行工作总结范文
2014/11/12 职场文书
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js
ubuntu下常用apt命令介绍
2022/06/05 Servers