zoukankan      html  css  js  c++  java
  • [LeetCode] 199

    Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.

    For example:
    Given the following binary tree,

       1            <---
     /   
    2     3         <---
          
      5     4       <---
    

    You should return [1, 3, 4].

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

  • 相关阅读:
    UPC2018组队训练赛第十二场
    ACM-ICPC 2018南京赛区网络预选赛
    UPC2018组队训练赛第十一场
    UPC2018组队训练赛第十场
    UPC2018组队训练赛第九场
    linux 用简单密码
    设置分辨率
    packstack
    rbenv
    elasticsearch
  • 原文地址:https://www.cnblogs.com/shoemaker/p/4766064.html
Copyright © 2011-2022 走看看