In diesem Artikel wird erklärt, wie man Binärbäume in Zickzack-Reihenfolge in PHP druckt.
Frage
Bitte implementieren Sie eine Funktion, um den Binärbaum in einem Zickzackmuster zu drucken, d. h. die erste Zeile wird in der Reihenfolge von links nach rechts gedruckt, die zweite Ebene wird in der Reihenfolge von gedruckt von rechts nach links, und die dritte Ebene wird in der Reihenfolge von rechts nach links gedruckt. Die Zeilen werden von links nach rechts gedruckt, und so weiter für die anderen Zeilen.
Lösungsidee
Verwenden Sie zwei Stapel
Implementierungscode
/*class TreeNode{ var $val; var $left = NULL; var $right = NULL; function __construct($val){ $this->val = $val; } }*/ function MyPrint($pRoot) { if($pRoot == NULL) return []; $current = 0; $next = 1; $stack[0] = array(); $stack[1] = array(); $resultQueue = array(); array_push($stack[0], $pRoot); $i = 0; $result = array(); $result[0]= array(); while(!empty($stack[0]) || !empty($stack[1])){ $node = array_pop($stack[$current]); array_push($result[$i], $node->val); //var_dump($resultQueue);echo " "; if($current == 0){ if($node->left != NULL) array_push($stack[$next], $node->left); if($node->right != NULL) array_push($stack[$next], $node->right); }else{ if($node->right != NULL) array_push($stack[$next], $node->right); if($node->left != NULL) array_push($stack[$next], $node->left); } if(empty($stack[$current])){ $current = 1-$current; $next = 1-$next; if(!empty($stack[0]) || !empty($stack[1])){ $i++; $result[$i] = array(); } } } return $result; }
Dieser Artikel erklärt, wie PHP Binärbäume in Zick-Zack-Reihenfolge druckt. Weitere Informationen zu relevanten Kenntnissen finden Sie hier Achten Sie auf die chinesische PHP-Website.
Verwandte Empfehlungen:
PHP-Nginx-Echtzeitausgabe-Implementierungsmethode
PHP-Implementierung, um den Einstiegsknoten des zu finden Ring in der verknüpften Liste
PHP-Klasse SoapClient nicht gefundene Verarbeitungsmethode
Das obige ist der detaillierte Inhalt vonPHP-Methode zum Drucken von Binärbäumen in Zickzack-Reihenfolge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!