<?php class node{ private $value; private $next; public function __construct($value=0,$next=null){ $this->value=$value; $this->next=$next; } public function getValue(){ return $this->value; } public function setValue($value){ return $this->value=$value; } public function getNext(){ return $this->next; } public function setNext($next){ return $this->next=$next; } } function reverse($node){ if (null == $node || null == $node->getNext()) { return $node; } $reversednode = reverse($node->getNext()); $node->getNext()->setNext($node); $node->setNext(null); return $reversednode; } function insert($node,$value,$position){ $tmp=$node; for($i=0;$i<$position;$i++){ $tmp=$tmp->getNext(); } $insertnode=new node($value); $insertnode->setNext($tmp->getNext()); $tmp->setNext($insertnode); } function delete($node,$position){ $tmp=$node; for($i=0;$i<$position;$i++){ $tmp=$tmp->getNext(); } $tmp->setNext($tmp->getNext()->getNext()); } echo "<pre>"; $node=new node(); $tmp=$node; for($i=1;$i<10;$i++){ $nextnode=new node($i); $tmp->setNext($nextnode); $tmp=$nextnode; } print_r($node); $node=reverse($node); insert($node,11,3); delete($node,3); print_r($node); ?>