PHP 查找链表倒数第i个节点
1 <?php 2 #查找链表倒数第i个节点,倒数第0个为最后一个节点 3 class Node { 4 public $data = null; 5 public $next = null; 6 } 7 8 #第一种方法,先算出链表总长,然后向后寻找n-i个节点 9 function last_i($head, $i) { 10 $cnode = $head; 11 $n = 0; 12 while ($cnode != null) { 13 $n++; 14 $cnode = $cnode->next; 15 } 16 17 $j = 1; 18 $cnode = $head; 19 while ($j < $n - $i) { 20 $j++; 21 $cnode = $cnode->next; 22 } 23 24 return $cnode; 25 } 26 27 #第二种方法,使用两个指针同时移动 28 function last_i_2($head, $i) { 29 $p1 = $head; 30 $p2 = $head; 31 $k = 0; 32 33 while ($k < $i) { 34 $p1 = $p1->next; 35 $k++; 36 } 37 38 while (($p1 = $p1->next) != null) { 39 $p2 = $p2->next; 40 } 41 42 return $p2; 43 } 44 45 $head = new Node(); 46 $n1 = new Node(); 47 $n2 = new Node(); 48 $n3 = new Node(); 49 $n4 = new Node(); 50 $head->data = 0; 51 $n1->data = 1; 52 $n2->data = 2; 53 $n3->data = 3; 54 $n4->data = 4; 55 $head->next = $n1; 56 $n1->next = $n2; 57 $n2->next = $n3; 58 $n3->next = $n4; 59 60 echo last_i($head, 2)->data . "<br>"; 61 echo last_i_2($head, 2)->data; 62 ?>
2
2
转载于:https://www.cnblogs.com/zemliu/archive/2012/10/01/2709899.html
PHP 查找链表倒数第i个节点相关推荐
- c++链表获取长度,链表翻转,查找链表倒数第K个节点以及中间点
c++链表获取长度,链表翻转, 查找链表倒数第K个节点以及中间点 测试数据 ListNode* pHead = new ListNode();pHead->m_key = 1;ListNode* ...
- 单链表倒数第K个节点的查找和显示
单链表倒数第K个节点的查找和显示 最近在学回顾之前学到的知识,正好碰到了关于链表查找的一道面试题,在此贴出来,与小伙伴们共同交流~ 在刚看到题目,其实很容易就想到一个方法,就是先求链表的长度(leng ...
- 链表之删除双链表倒数第K个节点
链表之删除双链表倒数第K个节点 题目: 链表之删除双链表倒数第K个节点 思路: 之前写过 http://blog.csdn.net/u011068702/article/details/50280 ...
- 链表之删除单链表倒数第K个节点
删除单链表倒数第K个节点 题目: 删除单链表中倒数第K个节点, 思路: 给我们一个单链表,我们需要删除倒数第K个节点,比如链表每个节点值是1.2.3.4.5.6 K值是 ...
- python 链表倒数第k个节点_链表-删除单链表中倒数第k个节点
题目 实现一个函数,一个可以删除单链表中倒数第k个节点 难度 简单 分析 本题比较简单,实现方法多种多样,这里提供一种方法 首先明确一点,在单链表中删除倒数第k个节点,需要找到他的前一个节点,让前一个 ...
- java链表的输出_Java输出链表倒数第k个节点
问题描述 输入一个链表,输出该链表中倒数第k个结点.(尾结点是倒数第一个) 结点定义如下: public class ListNode { int val; ListNode next = null; ...
- 剑指Offer之寻找链表倒数第k个节点
题目描述 输入一个链表,输出该链表中倒数第k个结点. 代码及解析 用的快慢指针的思路 public class FindKthValue {static public class ListNode { ...
- 链表倒数第k个节点_面试题 02.02. 返回倒数第 k 个节点
实现一种算法,找出单向链表中倒数第 k 个节点.返回该节点的值.注意:本题相对原题稍作改动示例:输入: 1->2->3->4->5 和 k = 2 输出: 4 说明:给定的 k ...
- 输出链表倒数第K个节点
题目 输入一个单向链表,输出该链表中倒数第 k 个结点.链表的倒数第 0 个结点为链表的尾指针. 思路 算是比较简单的题目了. 解法一: 可以先遍历一遍统计链表个数,然后找到倒数第k个的下标再遍历 ...
最新文章
- c语言中较常见的由内存分配引起的错误_内存越界_内存未初始化_内存太小_结构体隐含指针...
- linux c pid获取进程名 进程名获取pid
- 机器学习基本概念-阿里云大学
- 查看mysql 默认端口号和修改端口号
- Linux 命令之 --[chattr]
- 关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案
- 正则验证IP、掩码、端口
- BP神经网络分类实例(神经网络编程入门 )
- Ubunbu新建的用户使用SecureCrt无法Table补全、无法高亮
- 使用@Transactional(SUPPORTS)和不加@Transactional 有什么区别?
- cls image.php,Ecshop安装过程中的的相关问题:cls_image::gd_version()和不支持JPEG_PHP教程...
- 计算机离散数学视频教程,离散数学(全105讲)【理工学社】
- html文件用excel打开乱码,都是兼容惹的祸 用excel打开xls文件出现乱码的解决方法...
- 智慧环卫管理系统解决方案
- Elasticsearch:Dissect 和 Grok 处理器之间的区别
- Cisco测试命令和TCP/IP连接故障处理整理集合
- navigationController的一些用法
- Dcloud H5+微信登录功能
- 计算机图形设计论文 真实图形生成技术的发展,计算机图形设计论文真实图形生成技术的发展.docx...
- 图像处理的仿射变换与透视变换
热门文章
- java 微信证书文件,CertificateDownloader
- java thread start0_Java: Thread类中start()和run()的区别
- python sys.path.append()添加路径_Python调用CST进行天线建模仿真:环境搭建指南
- java 序列化异常_关于spring:Java序列化异常消息
- 两个pv挂一个vg_两个pv挂一个vg_VG解散LOL分部,LPL官网提前改名,下赛季被“RA”收购...
- 树莓派智能家居-语音聊天机器人实现
- Python适合自己的IDE才是最好的IDE
- 《只是为了好玩-Linux之父Linus自传》
- php递归简单例子,php递归json类实例
- python输入多个数字 找出只出现一个的数字_在python数组中找到接近给定数字的多个值...