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;
      }
    };

  • 相关阅读:
    jquery tmpl 详解
    freemarker 类型转换
    关于JQuery的绑定方法
    Jquery的extend方法
    Java高级特性之枚举
    runtime.getruntime.availableprocessors
    Log4J的使用
    JAVA关于一些变量的技巧
    Idea  调试代码
    java设计模式-State(状态)模式
  • 原文地址:https://www.cnblogs.com/shoemaker/p/4766064.html
Copyright © 2011-2022 走看看