輸入一個連結串列,按連結串列值從尾到頭的順序返回一個ArrayList。php
阿新 • • 發佈:2018-12-04
思路:定義一個數組,將原連結串列迴圈一次封裝到陣列,運用陣列函式倒序輸出。
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、包括單向結點,雙向結點,迴圈接點(環連結串列-快慢指標,快指標移動兩個結點,慢指標一個,快指標追上慢指標,則有環)
優缺點:
優點、連結串列實現資料元素儲存的順序儲存,是連續的
缺點、因為含有大量的指標域,所以佔用空間大,同時因為只有頭結點(後面說明)是明確知道地址的,所以查詢連結串列中的元素需要從頭開始尋找,非常麻煩。