zoukankan      html  css  js  c++  java
  • 199. 二叉树的右视图

    题目链接

    解题思路:

    使用层序遍历,输出每一层最右边的节点即可。

    C++:

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
     *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
     *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
     * };
     */
    class Solution {
    public:
        vector<int> rightSideView(TreeNode* root) {
            queue<TreeNode*> nodeQueue;
            nodeQueue.push(root);
            vector<int> rightView;
            if (root == nullptr) return rightView;
    
            while (!nodeQueue.empty()) {
                int size = nodeQueue.size();
                rightView.push_back(nodeQueue.front()->val);
                for (int i = 0; i < size; ++i) {
                    auto node = nodeQueue.front();
                    nodeQueue.pop();
                    if (node->right) {
                        nodeQueue.push(node->right);
                    }
                    if (node->left) {
                        nodeQueue.push(node->left);
                    }
                }
            }
    
            return rightView;
        }
    };

  • 相关阅读:
    用户体验评价
    第十四周进度总结
    寻找水王
    第十三周进度总结
    第一阶段意见评论
    梦断代码阅读笔记02
    第十二周进度总结
    冲刺(第十天)
    单词统计续
    冲刺(第九天)
  • 原文地址:https://www.cnblogs.com/pursuiting/p/14611011.html
Copyright © 2011-2022 走看看