版权声明:转载请注明原处,thanks~ https://blog.csdn.net/qq_41066340/article/details/81667520
思路:定义一个数组,将原链表循环一次封装到数组,运用数组函数倒序输出。
function printListFromTailToHead($head)
{
// write code here
//定义一个链表
$lists = [];
//循环链表,倒着输出
while($head != null)
{
array_push($lists,$head->val);
$head = $head->next;
}
return array_reverse($lists);//以相反的元素顺序返回数组
}
思路:递归输出
function printListFromTailToHead($head)
{
// write code here
$listArray=array();
if($head!=NULL){
$listArray=printListFromTailToHead($head->next);
$listArray[]=$head->val;
}
return $listArray;
}
延伸:链表
1、链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,有一系列结点(地址)组成,结点可动态的生成。
2、结点包括两个部分:一、存储数据元素的数据域(内存空间),二、存储指向下一个结点地址的指针域。
3、包括单向结点,双向结点,循环接点(环链表-快慢指针,快指针移动两个结点,慢指针一个,快指针追上慢指针,则有环)
优缺点:
优点、链表实现数据元素储存的顺序储存,是连续的
缺点、因为含有大量的指针域,所以占用空间大,同时因为只有头结点(后面说明)是明确知道地址的,所以查找链表中的元素需要从头开始寻找,非常麻烦。