每天一道LeetCode-----從右向左觀察一棵二叉樹,返回能看到的元素
阿新 • • 發佈:2019-02-19
Binary Tree Right Side View
從右向左觀察一棵二叉樹,返回能看到的元素
遍歷一遍即可,只記錄靠右的元素
程式碼如下
/**
* 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> views;
scan(root, 0, views);
return views;
}
private:
void scan(TreeNode* root, int h, vector<int>& views)
{
if(!root) return;
if(h >= views.size())
views.emplace_back(root->val);
/* 先遍歷右側,這樣就可以先選擇右邊的元素 */
scan(root->right, h + 1, views);
scan(root->left, h + 1, views);
}
};