二叉树——199. 二叉树的右视图

二叉树——199. 二叉树的右视图

题目:

思路:

层序遍历(BFS),记录下每层最后一个结点。

代码:

class Solution {
public:
    vector<int> rightSideView(TreeNode* root) {
        queue<TreeNode*> que;
        if(root != NULL) que.push(root);
        vector<int> result;
        while(!que.empty()){
            int size = que.size();
            for(int i=0; i < size; i++){
                TreeNode* node = que.front();
                que.pop();
                // 将每一层的最后元素放入result数组中
                if(i == (size -1)) result.push_back(node->val);
                if(node->left) que.push(node->left);
                if(node->right) que.push(node->right);
            }
        }
        return result;
    }
};

Rank:

Tips:

BFS和DFS的模板还是要总结一下。

posted @ 2021-04-10 11:55  Originhhh  阅读(58)  评论(0)    收藏  举报