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

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

http://www.nowcoder.com/practice/a9fec6c46a684ad5a3abd4e365a9d362

使用递归法实现先序,中序,后序遍历。由于借助了3个辅助队列,空间复杂度为O(3n),这里较为容易优化,直接在结果数组上修改的话可将空间复杂度降为O(1)。而对树进行了三次递归,所以 时间复杂度为O(3n),基本符合题目要求的O(n)。

class Solution {
public:
    /**
     * 
     * @param root TreeNode类 the root of binary tree
     * @return int整型vector<vector<>>
     */
    vector<vector<int> > threeOrders(TreeNode* root) {
        // write code here
        vector<int> first;
        vector<int> mid;
        vector<int> last;
        vector<vector<int>> result;
        if(!root == NULL){
            goFirst(root, first);
            goMid(root, mid);
            goLast(root, last);
        }
        result.push_back(first);
        result.push_back(mid);
        result.push_back(last);
        return result;
    }
    void goFirst(TreeNode* root, vector<int>& first){
        first.push_back(root->val);
        if(root->left != NULL){
            goFirst(root->left, first);
        }
        if(root->right != NULL){
            goFirst(root->right,first);
        }
    }
    void goMid(TreeNode* root, vector<int>& mid){
        if(root->left != NULL){
            goMid(root->left, mid);
        }
        mid.push_back(root->val);
        if(root->right != NULL){
            goMid(root->right,mid);
        }
    }
    void goLast(TreeNode* root, vector<int>& last){
        if(root->left != NULL){
            goLast(root->left, last);
        }
        if(root->right != NULL){
            goLast(root->right,last);
        }
        last.push_back(root->val);
    }
};
全部评论

相关推荐

多多啊&nbsp;多多啊&nbsp;上来四道算法题算法题直播排序,整体比较简单把对象写出来,然后比较规则写明白就OK了。唯一一道A100%的电车充电如何最省钱,到目的地如何充电的钱最少,路上有充电站,每个电站价格不一样。用了DP来做,但感觉是贪心的样子,最后没招了,把不能到的情况给干了出来,过了8%日志分析纠错,滑动窗口,但我最后结果永远少一,过了15%没看,力竭了燃尽了多多&nbsp;以后牛客不用后台找我了,笔试夯爆了
淮竹c:不好意思,打扰大家🙏我是一个拼多多骑手,小电驴的最大电量为C,我的最大电量有1e9这么promax😭😭😭需要从x=0处走到x=L,L足足有1e9那么长处,途中有n个充电站,🙏🙏每个充电站的距离和电价分别为di和pi,初始电量是满的😭😭😭请告诉我到达终点最少要花多少钱😭😭😭求求大家把这些钱转给我
查看2道真题和解析
点赞 评论 收藏
分享
SHC2:春招先狠狠投递,然后你看看能不能申请香港新加坡的一年制master,花不了多少钱,或者现在赶紧去刷一段实习。HR专业考研没必要
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务