php打印从1到1000,输入一个链表的头节点,从尾到头打印每个节点的值,利用PHP如何实现?...
以下是我的实现代码(我只是打印出了每个节点):
/**
* Question:输入一个链表的头节点,反向打印链表节点
* Author:entner
* time: 2017-7-21
* version:1.0
*/
/**
*Thinking:
* 遍历链表节点,将访问到的节点压入栈中,然后输出栈元素
*Ready:
* (节点类 链表游标 随机数)-> 创建一个链表
*
*/
/**
*TODO:创建节点类
*@param $nodeName string 节点名称
*@param $next object 下一节点
*/
Class Node{
public $nodeName;
public $next;
public function __construct($nodename = null,$next = null){
$this->nodeName = $nodename;
$this->next = $next;
}
}
Class SingeLinkList{
public $header;
public $stack = [];
public $top = -1;
public $newNode;
function createNode($n){
/* 声明一个头节点 */
$this->header = new Node(null,null);
$head = $this->header;
for($i=0;$i
/* 创建新的节点 */
$this->newNode = new Node(rand(0,100),null);
$current = $this->newNode;
/* 将新节点压入栈中 */
$this->top++;
$this->stack[$this->top] = $current; //这里没有做栈的限制
/* 节点名称赋值 */
$head->nodeName = $current->nodeName;
/* 当前节点为新节点 */
$head->next = $current;
/* 将当前节点设置为新的尾节点 */
$head = $current;
}
$head->next = null;
if($head->next == null){
while($this->top != -1){
print_r($this->stack[$this->top]);
$this->top--;
}
}
}
}
echo "
";
(new SingeLinkList)->createNode(4);
打印结果如下:
Node Object
(
[nodeName] => 15
[next] =>
)
Node Object
(
[nodeName] => 15
[next] => Node Object
(
[nodeName] => 15
[next] =>
)
)
Node Object
(
[nodeName] => 10
[next] => Node Object
(
[nodeName] => 15
[next] => Node Object
(
[nodeName] => 15
[next] =>
)
)
)
Node Object
(
[nodeName] => 93
[next] => Node Object
(
[nodeName] => 10
[next] => Node Object
(
[nodeName] => 15
[next] => Node Object
(
[nodeName] => 15
[next] =>
)
)
)
)
应该说,我只需要第四个结果就够了,为什么会出现递归的现象,我没有利用递归,而且我也不知道这样是不是对的,求指点。
P.S 这个题目和反转链表有什么区别?
php打印从1到1000,输入一个链表的头节点,从尾到头打印每个节点的值,利用PHP如何实现?...相关推荐
- 反转链表:输入一个链表的头结点,反转该链表并输出反转后的链表的头结点。...
2019独角兽企业重金招聘Python工程师标准>>> 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点. 为了正确的反转一个链表,需要调整链表 ...
- 【LeetCode 剑指offer 06】输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
学习目标: 目标:熟练运用Java数据结构知识 学习内容: 本文内容:使用Java实现:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 文章目录 学习目标: 学习内容: 题目描述 ...
- 在不改变链表的情况下从尾到头打印连表
输入一个连表的头结点,从尾到头反过来打印出每个结点的值. C#语言实现: public static void PrintRev(LinkedList<int> lList){Stack& ...
- 剑指offer:面试题06. 从尾到头打印链表
题目:从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 限制: 0 <= 链表长度 & ...
- 【剑指Offer专题】链表系列:从尾到头打印链表、反转链表、回文链表、合并两个排序的链表(C++和Python实现)...
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 剑指Offer(三):从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每 ...
- 《LeetCode力扣练习》剑指 Offer 06. 从尾到头打印链表 Java
<LeetCode力扣练习>剑指 Offer 06. 从尾到头打印链表 Java 一.资源 题目: 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入: ...
- java从尾到头打印链表数据_Java编程实现从尾到头打印链表代码实例
问题描述:输入一个链表的头结点,从尾巴到头反过来打印出每个结点的值. 首先定义链表结点 public class ListNode { int val; ListNode next = null; L ...
- python 从尾到头打印链表
从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每个节点的值 (用数组返回).示例 1:输入:head = [1,3,2] 输出:[2,3,1] 提供三种题解 # Definition fo ...
- 剑指Offer面试题:4.从尾到头打印链表
一 题目:从尾到头打印链表 题目:输入一个链表的头结点,从尾到头反过来打印每个结点的值. 代码实现 采用两种方法实现: (1) 不修改原列表,使用stack的方式实现 (2)修改原列表,对元列表逆序 ...
最新文章
- python代码计算图像的分辨率
- C语言改造二分法(Modified Binary Search)算法(附完整源码)
- python参数化_Python 中如何实现参数化测试的方法示例
- 【华为云技术分享】听说,AI界奔涌的后浪都相聚在这里
- 联想拯救者y空间_ThinkPad X1 Nano上市;联想拯救者R9000X、Y9000X发布
- python 保存文件 吃内存_python检测空间储存剩余大小和指定文件夹内存占用的实例...
- zjoi2018day1 游记
- Html5判断手机型号,WebView-修改userAgent用于网页端判断手机型号
- ppt加载html5,当PPT遇见H5,这才是真爱!
- 2021 编程语言排行榜出炉
- CentOS 安装NTFS-3G,支持NTFS分区的方法
- http请求 405错误 方法不被允许 (Method not allowed)
- 关于165的(ORCAP-1192)
- C陷阱篇之char的默认符号
- Symbian OS 精要
- linux面试大全最新
- 外贸人应该灵活运用的“套路”
- 浙大29岁“粉色系”博导获百万大奖:希望做好学生的导师而不是“老板”
- 著名C9院校!接连发表5篇Nature/Cell!
- 为什么Precision高Recall就低——F1 score
热门文章
- RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占优势
- 用vue-scroller做上拉刷新,下拉加载的模板(简单明了,通用)
- Linux下connect超时处理
- 电话号码 【trie树】
- CSS的一些基础知识
- c#万能视频播放器 (转)
- WPF的消息机制(三)- WPF内部的5个窗口之处理激活和关闭的消息窗口以及系统资源通知窗口...
- 2010 ACM/ICPC Online-Contest-SCU[四川赛区网络预选赛]
- 设计模式学习3——装饰者模式(Decorator)
- Docker----在Docker中部署Asp.net core2.1以及修改发布