反向输出链表(php实现)

算法 admin 175℃ 0评论

这个没什么好说的,直接上代码吧

两个版本,迭代和递归

<?php
//递归
function rshow1($head){
    //头结点
    if($head->val == null&&$head->next == null){
        rshow1($head->next);
        return false;
    }

    //非尾结点
    if($head->next != null){
        rshow1($head->next);
        echo $head->val . '<br>';
    } else {
        //尾结点
        echo $head->val . '<br>';
    }
}

//迭代
function rshow($head){
    if($head->next == null){
        return null;
    }

    $p = $head;
    $arr = array();
    while($p->next != null){
        $p = $p->next; 
        array_unshift($arr, $p->val); 
    }

    while($node = array_shift($arr)){
        echo $node . '<br>';
    }
}

class node{
    public $val = null;
    public $next = null;
}
$head = new node();
$p = $head;

$arr = [1, 2, 3, 4, 5];
foreach($arr as $a){
    $node = new node();
    $node->val = $a;
    $p->next = $node;
    $p = $node;
}
rshow1($head);

//rshow($head);

 

转载请注明:朋克网 » 反向输出链表(php实现)

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址