题解 | #输出二叉树的右视图#

输出二叉树的右视图

https://www.nowcoder.com/practice/c9480213597e45f4807880c763ddd5f0

#include <queue>
#include <vector>
class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 求二叉树的右视图
     * @param preOrder int整型vector 先序遍历
     * @param inOrder int整型vector 中序遍历
     * @return int整型vector
     */
    TreeNode* reConstructBinaryTree(vector<int>& preOrder, vector<int>& vinOrder) {
        // write code here
        if (preOrder.empty() || vinOrder.empty())
            return NULL;
        TreeNode* root = new TreeNode(preOrder[0]);
        int i;
        for (i = 0; i < vinOrder.size(); i++) {
            if (vinOrder[i] == preOrder[0]) {

                break;
            }

        }
        vector<int> preLeft(preOrder.begin() + 1, preOrder.begin() + i + 1);
        vector<int> preRight(preOrder.begin() + i + 1, preOrder.end());
        vector<int> midLeft(vinOrder.begin(), vinOrder.begin() + i);
        vector<int> midRight(vinOrder.begin() + i + 1, vinOrder.end());
        root->left = reConstructBinaryTree(preLeft, midLeft);
        root->right = reConstructBinaryTree(preRight, midRight);

        return root;
    }
    vector<int> solve(vector<int>& preOrder, vector<int>& inOrder) {
        TreeNode* root = reConstructBinaryTree(preOrder, inOrder);
        queue<TreeNode*> que;
        que.push(root);
        vector<int> res;
        while (!que.empty()) {
            int levelSize = que.size();
            for (int i = 0; i < levelSize; i++) {
                TreeNode* tmp = que.front();
                que.pop();
                if (i == levelSize - 1) {
                    res.push_back(tmp->val);
                }
                if (tmp->left) que.push(tmp->left);
                if (tmp->right) que.push(tmp->right);
            }
        }
        return res;
    }

};

全部评论

相关推荐

02-26 09:15
已编辑
蚌埠学院 golang
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 一张图晒出你司的标语 #
4234次浏览 75人参与
# AI面会问哪些问题? #
27302次浏览 545人参与
# 米连集团26产品管培生项目 #
13267次浏览 285人参与
# 你的实习产出是真实的还是包装的? #
19941次浏览 342人参与
# 找AI工作可以去哪些公司? #
8782次浏览 225人参与
# 春招至今,你的战绩如何? #
63972次浏览 575人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
14949次浏览 219人参与
# 从事AI岗需要掌握哪些技术栈? #
8671次浏览 293人参与
# 你做过最难的笔试是哪家公司 #
32715次浏览 223人参与
# 中国电信笔试 #
31617次浏览 284人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
340650次浏览 2173人参与
# 阿里笔试 #
178203次浏览 1311人参与
# 第一份工作一定要去大厂吗 #
14308次浏览 122人参与
# 金三银四,你的春招进行到哪个阶段了? #
22001次浏览 280人参与
# 沪漂/北漂你觉得哪个更苦? #
9691次浏览 193人参与
# HR最不可信的一句话是__ #
6123次浏览 113人参与
# 应届生第一份工资要多少合适 #
20651次浏览 86人参与
# AI时代,哪个岗位还有“活路” #
11346次浏览 339人参与
# 春招你拿到offer了吗 #
830934次浏览 9986人参与
# 长得好看会提高面试通过率吗? #
22418次浏览 254人参与
# 聊聊你的职场新体验 #
336392次浏览 1894人参与
# 学历对求职的影响 #
664972次浏览 4249人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务