Binary Tree Right Side View
2015.4.17 06:04
Given A binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can SE E ordered from top to bottom.
For example:
Given The following binary tree,
return from top to bottom. For Example:given The following binary tree, 1 <---/ 2 3 <--- \ 5 4 <---return [ 1 3 4].
You should return [1, 3, 4]
.
Solution:
Recursion can provide you and a short solution. So make it simple.
Accepted Code:
1 //1AC, easy with recursive2 /**3 * Definition for binary tree4 * struct TreeNode {5 * int val;6 * TreeNode *left;7 * TreeNode *right;8 * TreeNode (int x): Val (x), left (null), right (null) {}9 * };Ten */ One classSolution { A Public: -vector<int> Rightsideview (TreeNode *root) { -vector<int>Res; the if(Root = =nullptr) { - returnRes; - } - +DFS (Root,1, res); - returnRes; + } A Private: at voidDFS (TreeNode *ptr,intDEP, vector<int> &Res) { - if(Dep >res.size ()) { -Res.push_back (ptr->val); - } - - if(Ptr->right! =nullptr) { inDFS (Ptr->right, DEP +1, res); - } to if(Ptr->left! =nullptr) { +DFS (Ptr->left, DEP +1, res); - } the } *};
Leetcode-binary Tree Right Side View