输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。php

版权声明:转载请注明原处,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、包括单向结点,双向结点,循环接点(环链表-快慢指针,快指针移动两个结点,慢指针一个,快指针追上慢指针,则有环)

优缺点:

优点、链表实现数据元素储存的顺序储存,是连续的

缺点、因为含有大量的指针域,所以占用空间大,同时因为只有头结点(后面说明)是明确知道地址的,所以查找链表中的元素需要从头开始寻找,非常麻烦。

数组、链表、堆栈和队列

单链表PHP操作

猜你喜欢

转载自blog.csdn.net/qq_41066340/article/details/81667520