【題解】Binary Tree Right Side View

這道leetcode最新出的題,貌似也不是很難,用廣度優先搜索即可,參考代碼如下。

class Solution {
public:
    vector<int> rightSideView(TreeNode *root) {
        vector<int> answer;
		queue<TreeNode *> queue, temp_queue;
		TreeNode * front = 0;
		
		if (NULL == root)
		{
			return answer;
		}
		queue.push(root);
		answer.push_back(root->val);
		while (!queue.empty())
		{
			while (!temp_queue.empty())
			{
				temp_queue.pop();
			}
			while (!queue.empty())
			{
				front = queue.front();
				if (NULL != front->left)
				{
					temp_queue.push(front->left);
				}
				if (NULL != front->right)
				{
					temp_queue.push(front->right);
				}
				queue.pop();
			}
			queue = temp_queue;
			if (!queue.empty())
			{
				answer.push_back(queue.back()->val);
			}
			
		}
		return answer;
    }
};


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章