题解 | #实现二叉树先序,中序和后序遍历#
实现二叉树先序,中序和后序遍历
http://www.nowcoder.com/practice/a9fec6c46a684ad5a3abd4e365a9d362
<?php /*class TreeNode{ var $val; var $left = NULL; var $right = NULL; function __construct($val){ $this->val = $val; } }*/ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param root TreeNode类 the root of binary tree * @return int整型二维数组 */ function threeOrders( $root ) { $result = $result1 = $result2 = $result3 = []; $root1 = $root2 = $root3 = $root; preOrders($root1,$result1); midOrders($root2,$result2); postOrders($root3,$result3); $result[] = $result1; $result[] = $result2; $result[] = $result3; return $result; } //利用参数引用 function preOrders($root,&$prelist){ if ($root == null) { return; } $prelist[] = $root->val; preOrders($root->left,$prelist); preOrders($root->right,$prelist); } //利用参数引用 function midOrders($root,&$midlist){ if ($root == null) { return; } midOrders($root->left,$midlist); $midlist[] = $root->val; midOrders($root->right,$midlist); } //利用参数引用 function postOrders($root,&$postlist){ if ($root == null) { return; } postOrders($root->left,$postlist); postOrders($root->right,$postlist); $postlist[] = $root->val; }