题解 | #实现二叉树先序,中序和后序遍历#

实现二叉树先序,中序和后序遍历

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;
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务