PHP如何实现从尾到头打印链表的逆序输出?
- 内容介绍
- 文章标签
- 相关推荐
本文共计212个文字,预计阅读时间需要1分钟。
题目:输入一个链表,从尾到头打印每个节点的值。题解:一种方法是使用栈。第二种方法是递归。代码:python// 递归版本function printListFromTailToHead($head) { if ($head===NULL) { return []; } $arr=array(); $arr=printListFromTailToHead($head->next); $arr[]=$head->val; return $arr;}
题目
输入一个链表,从尾到头打印链表每个节点的值。
题解
一种是使用栈。
第二种是递归。
代码
//递归版本 function printListFromTailToHead($head) { if($head == NULL){ return []; } $arr = array(); $cur = $head; if($cur->next != null){ $arr = printListFromTailToHead($cur->next); } array_push($arr, $cur->val); return $arr; } //非递归版本 function printListFromTailToHead($head) { if($head == NULL){ return []; } $cur = $head; $arr = array(); $re = array(); while($cur != NULL){ array_push($arr, $cur->val); $cur = $cur ->next; } while(!empty($arr)){ $tmp = array_pop($arr); array_push($re, $tmp); } return $re; }
本文共计212个文字,预计阅读时间需要1分钟。
题目:输入一个链表,从尾到头打印每个节点的值。题解:一种方法是使用栈。第二种方法是递归。代码:python// 递归版本function printListFromTailToHead($head) { if ($head===NULL) { return []; } $arr=array(); $arr=printListFromTailToHead($head->next); $arr[]=$head->val; return $arr;}
题目
输入一个链表,从尾到头打印链表每个节点的值。
题解
一种是使用栈。
第二种是递归。
代码
//递归版本 function printListFromTailToHead($head) { if($head == NULL){ return []; } $arr = array(); $cur = $head; if($cur->next != null){ $arr = printListFromTailToHead($cur->next); } array_push($arr, $cur->val); return $arr; } //非递归版本 function printListFromTailToHead($head) { if($head == NULL){ return []; } $cur = $head; $arr = array(); $re = array(); while($cur != NULL){ array_push($arr, $cur->val); $cur = $cur ->next; } while(!empty($arr)){ $tmp = array_pop($arr); array_push($re, $tmp); } return $re; }

