PHP从尾到头打印链表实例讲解

这篇文章给大家分享了关于PHP从尾到头打印链表的相关知识点内容,有需要的朋友们可以测试下。

题目

输入一个链表,从尾到头打印链表每个节点的值。

题解

一种是使用栈。

第二种是递归。

代码

  1. //递归版本
  2. function printListFromTailToHead($head)
  3. {
  4. if($head == NULL){
  5. return [];
  6. }
  7. $arr = array();
  8. $cur = $head;
  9. if($cur->next != null){
  10. $arr = printListFromTailToHead($cur->next);
  11. }
  12. array_push($arr, $cur->val);
  13. return $arr;
  14. }
  15. //非递归版本
  16. function printListFromTailToHead($head)
  17. {
  18. if($head == NULL){
  19. return [];
  20. }
  21. $cur = $head;
  22. $arr = array();
  23. $re = array();
  24. while($cur != NULL){
  25. array_push($arr, $cur->val);
  26. $cur = $cur ->next;
  27. }
  28. while(!emptyempty($arr)){
  29. $tmp = array_pop($arr);
  30. array_push($re, $tmp);
  31. }
  32. return $re;
  33. }