Binary Tree Right Side View

来源:互联网 发布:网络安全教育讲话稿 编辑:程序博客网 时间:2024/05/01 19:58
/** * 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> v;        if(root == NULL)            return v;                queue<TreeNode* > q;        q.push(root);        q.push(NULL);                TreeNode* last = NULL;        while(q.size() > 0)        {            TreeNode* t = q.front();            q.pop();            if(t == NULL)            {                if(last == NULL)                    break;                q.push(NULL);                v.push_back(last->val);                last = NULL;                continue;            }                        if(t->left)                q.push(t->left);            if(t->right)                q.push(t->right);                            last = t;        }                if(last != NULL)            v.push_back(last->val);                    return v;    }};

0 0
原创粉丝点击