3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Node { public $data = null; public $parent = null; public $left = null; public $right = null; } function mirror_recursive($root) { if ($root === null) { return; } mirror_recursive($root->left); mirror_recursive($root->right); $temp = $root->left; $root->left = $root->right; $root->right = $temp; } function mirror_norec($root) { $queue = array(); array_unshift($queue, $root); while (!empty($queue)) { $cnode = array_pop($queue); if ($cnode->left !== null) array_unshift($queue, $cnode->left); if ($cnode->right !== null) array_unshift($queue, $cnode->right); $temp = $cnode->left; $cnode->left = $cnode->right; $cnode->right = $temp; } } function inorder_traverse($root) { if ($root->left !== null) inorder_traverse($root->left); echo $root->data . " "; if ($root->right !== null) inorder_traverse($root->right); } $root = new Node(); $n1 = new Node(); $n2 = new Node(); $n11 = new Node(); $n12 = new Node(); $n13 = new Node(); $n14 = new Node(); $n15 = new Node(); $n21 = new Node(); $root->data = 0; $n1->data = 1; $n2->data = 2; $n11->data = 11; $n12->data = 12; $n13->data = 13; $n14->data = 14; $n15->data = 15; $n21->data = 21; $root->left = $n1; $root->right = $n2; $n1->left = $n11; $n1->right = $n12; $n11->left = $n13; $n12->right = $n14; $n13->left = $n15; $n2->right = $n21; inorder_traverse($root); echo "<br>"; mirror_recursive($root); inorder_traverse($root); echo "<br>"; mirror_norec($root); inorder_traverse($root); ?>

preferences:
49.09 ms | 402 KiB | 5 Q